【发布时间】:2018-06-24 19:06:02
【问题描述】:
如何从服务器向任何特定客户端发送消息。我有如何做到这一点的概念,就像我必须列出所有连接到服务器的客户端然后通过迭代每个客户端我可以发送消息但如果有人可以通过代码帮助我,我将不胜感激。我已经搜索过许多代码,但我没有从他们那里得到任何可观的帮助 代码不应该是基于 GUI 的。在此先感谢。抱歉我的英语不好。 这是我的代码,其中消息发送给所有客户端,但我想使用客户端 ipaddress 将消息发送给我选择的客户端
Map<Integer, java.net.Socket> clients = new HashMap<Integer, java.net.Socket> ();
socket = serverSocket.accept();
// Add the socket to a HashMap
clients.put(socket.getPort(), socket);
for (Iterator<Integer> iter = clients.keySet().iterator(); iter.hasNext(); )
{
int key = iter.next();
java.net.Socket client = clients.get(key);
// Sending the response back to the client.
// Note: Ideally you want all these in a try/catch/finally block
OutputStream os = client.getOutputStream();
OutputStreamWriter osw = new OutputStreamWriter(os);
BufferedWriter bw = new BufferedWriter(osw);
bw.write("Some message");
bw.flush();
}
【问题讨论】:
-
我刚刚看到您将此作为单独的问题添加。这取决于您要如何识别要挑选的客户。你知道你想怎么做吗?
-
是的,先生,一旦客户端连接到服务器,它就会将他的 ipadress 和用户名发送到服务器,现在使用 ipadressess,我想向任何特定客户端发送消息,我有一个选项是,如果我想将消息发送到 IP 地址 192.168.1.1 的客户端,然后我会将消息和 IP 地址发送给所有客户端,然后简单地在客户端应用检查哪个客户端具有该 IP 地址,如果其中任何一个具有该 IP 地址,则向他显示该消息
标签: java