java socket 客户端能 多次 随时 向客户端发送会话吗?要怎么实现,能举个例子吗 在线等,谢谢再次谢谢

 我来答
寒眼天狼
2011-05-01 · 超过22用户采纳过TA的回答
知道答主
回答量:36
采纳率:0%
帮助的人:64.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”时,程序退出。

一点灼见,希望对你有用!
追问
我是在按钮触发事件后才要发送会话呢,那怎么写?放哪里合适呢?
追答
那你搞个图形界面,建立一个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);

这段代码我也没运行过,不知可行不可行,只是我一个想法,还望你自己能动手运行运行。

希望对你有帮助。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式