我如何将邮件从服务器发送到任何特定的客户端。我的想法是如何做到这一点,就像我必须列出连接到服务器的所有客户端的列表,然后通过迭代每个客户端我可以发送消息,但是如果有人可以通过代码帮助我,我将非常感激。许多代码,但是我没有从他们那里得到任何可观的帮助。代码不应该基于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();
}
Run Code Online (Sandbox Code Playgroud)
您可以存储查找客户端的方式与其所在套接字之间的关系。执行此操作的自然方法是使用地图,例如
Map<String, Socket> sockets = new HashMap<String,Socket>();
...
ServerSocket ss = ...;
Socket s = ss.accept();
String username = getUserName(s);
sockets.put(username, s);
Run Code Online (Sandbox Code Playgroud)
显然,在此示例中,客户端必须以您希望在建立 Socket 连接后收到的格式发送他/她的用户名
| 归档时间: |
|
| 查看次数: |
8513 次 |
| 最近记录: |