为什么用Java编写的多线程聊天程序只能多个客户端向服务端发送信息,而服务端却不能向客户端返回信息? 10

btn_send.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente... btn_send.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { //发送消息事件 send(); } });public void send() { if(!isStart){ JOptionPane.showMessageDialog(frame, "服务器没有启动","错误",JOptionPane.ERROR_MESSAGE); return; } //获取文本框输入的内容 String message = txt_message.getText().trim(); if(message==null||message.equals("")) { JOptionPane.showMessageDialog(frame, "消息不能为空","错误",JOptionPane.ERROR_MESSAGE); return; } writer.println(frame.getTitle()+"@"+"ALL"+"@"+message); writer.flush(); txt_message.setText(null); } public static void main(String[] args) { new CharServer(); } } 展开
 我来答
主宰比赛Eddie
2015-07-30 · TA获得超过1868个赞
知道小有建树答主
回答量:574
采纳率:0%
帮助的人:119万
展开全部
因为服务端是不能知道客户端的位置的,只能客户端发送给他消息以后 服务端来保存这个Client的会话状态。就像人人都知道KFC在哪,但是KFC店是不知道你家在哪的,除非你先联系他定外卖,他才能给你送回来。如果他保存了你的地址以后就可以主动联系你这个Client了。。
追问
那该怎么修改呢?  这个send方法
追答
你要用一个集合来保存你的Client
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式