java socket 客户端能 多次 随时 向客户端发送会话吗?要怎么实现,能举个例子吗 在线等,谢谢再次谢谢
1个回答
展开全部
可以做的到,但这个是有前提的,就好像QQ一样,必须对方在线,他才能收到你的会话。
比如说多次,你可以采用循环输入,等到满足一个条件时,退出!
比如说发送方代码如下:
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;
import java.util.Scanner;
class practise12{
public static void main(String[] args) throws SocketException, UnknownHostException, IOException{
DatagramSocket ds=new DatagramSocket(3000);
DatagramPacket dp=null;
String str="";
do{
System.out.println("请输入:");
Scanner input=new Scanner(System.in);
str=input.next();
dp=new DatagramPacket(str.getBytes(),str.length(),InetAddress.getByName("localhost"),8000);
ds.send(dp);
}while(str.compareTo("exit")!=0);
ds.close();
}
}
这样你就可以多次发送会话,当发送方输入“exit”时,程序就会退出。
接收方也是同样道理:当接收到“exit”时,程序退出。
一点灼见,希望对你有用!
比如说多次,你可以采用循环输入,等到满足一个条件时,退出!
比如说发送方代码如下:
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;
import java.util.Scanner;
class practise12{
public static void main(String[] args) throws SocketException, UnknownHostException, IOException{
DatagramSocket ds=new DatagramSocket(3000);
DatagramPacket dp=null;
String str="";
do{
System.out.println("请输入:");
Scanner input=new Scanner(System.in);
str=input.next();
dp=new DatagramPacket(str.getBytes(),str.length(),InetAddress.getByName("localhost"),8000);
ds.send(dp);
}while(str.compareTo("exit")!=0);
ds.close();
}
}
这样你就可以多次发送会话,当发送方输入“exit”时,程序就会退出。
接收方也是同样道理:当接收到“exit”时,程序退出。
一点灼见,希望对你有用!
追问
我是在按钮触发事件后才要发送会话呢,那怎么写?放哪里合适呢?
追答
那你搞个图形界面,建立一个JButton,为JButton添加监听事件,把这个监听事件还是放进循环里 JButton button=new JButton("发送");
do{
System.out.println("请输入:");
Scanner input=new Scanner(System.in);
str=input.next();
dp=new DatagramPacket(str.getBytes(),str.length(),InetAddress.getByNam("localhost"),8000);
button.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
if(e.getSource()==button){
ds.send(dp); //如果触发这个事件时,就去发送它.
}
}
});
}while(str.compareTo("exit")!=0);
这段代码我也没运行过,不知可行不可行,只是我一个想法,还望你自己能动手运行运行。
希望对你有帮助。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询