Java-在客户端识别来自服务器的发送到一个和发送到所有消息
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java-在客户端识别来自服务器的发送到一个和发送到所有消息,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1606字,纯文字阅读大概需要3分钟。
内容图文
![Java-在客户端识别来自服务器的发送到一个和发送到所有消息](/upload/InfoBanner/zyjiaocheng/683/ced5d1f871e14f15b6707f685b8c99cf.jpg)
我正在开发一个服务器/客户端应用程序,该应用程序允许在任何给定时间将多个客户端连接到服务器.
对于每个客户端,服务器设置一个ClientHandler对象,该对象具有到连接到此套接字的客户端的输入和输出流.通过此连接,客户端可以在程序运行的任何时候自由地向服务器发送许多消息,服务器将根据该消息进行响应.
我需要实现的是一种在特定时间向所有当前连接的客户端发送消息的机制.我通过将所有输出流存储到客户端的ArrayList< PrintWriter>中来完成此操作.这样就可以将同一封邮件发送给所有客户端.
我正在努力的是:
接收到特定于客户端的消息后,客户端GUI会相应更新(只能发送一定数量的消息,因此只有一定数量的可能的来自服务器的响应由客户端处理,如果声明).但是,当客户端收到发送给所有客户端的消息时,我希望客户端以完全不同的方式更新GUI.
考虑到两种形式的输入都来自相同的输入流,我可以看到这很困难,并且我预计必须声明所有导致使用PrintWriter输出的方法,这些方法必须同步.但是,有没有办法在使用同一PrintWriter的同时处理不同的输入?是否必须使用其他if语句来完成此操作,还是可以使用客户端上用于处理发送给所有客户端的消息的单独线程来完成此操作?
感谢您的任何建议,如果您认为可以提供帮助,请随时索取我现有代码的一部分!
标记
解决方法:
When your clients connect to the server, your server creates a Socket for it, here it is Socket socket = ss.accept();, your socket variable will be holding that client.
现在,如果您只是在while循环中继续将客户端套接字添加到arraylist中,则将有一个与服务器活动连接的客户端列表,例如:
接受后:
clients = new ArrayList<DataOutputStream>();
Socket socket = ss.accept();
os = new DataOutputStream(socket.getOutputStream());
clients.add(os);
现在,当您在该客户端阵列列表中拥有所有客户端时,就可以遍历该客户端列表,或者使用某种协议定义读取后应该发送数据的客户端.
内容总结
以上是互联网集市为您收集整理的Java-在客户端识别来自服务器的发送到一个和发送到所有消息全部内容,希望文章能够帮你解决Java-在客户端识别来自服务器的发送到一个和发送到所有消息所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。