我有3个客户端使用套接字通过服务器连接。任何人都可以帮助我理解如何在不将消息发送到客户端2或客户端3的情况下将消息发送到客户端#1的概念,或者如何在不将消息发送到客户端1和客户端的情况下将消息发送到客户端2抱歉我的英语不好。
答案 0 :(得分:0)
要向客户端发送消息,您需要获取套接字的输出流,以便您可以将数据写入该流,例如,您可以执行以下操作: -
public Boolean writeMessage(String Command)
{
try
{
byte[] message = Command.getBytes(Charset.forName("UTF-8")); // convert String to bytes
DataOutputStream outStream = new DataOutputStream(socket.getOutputStream());
outStream.writeInt(message.length); // write length of the message
outStream.write(message); // write the bytes
return true;
}
catch (IOException e)
{
}
return false;
}
要读取另一端的消息,请获取套接字inputStream并从中读取数据,如下所示: -
public String readMessage()
{
try
{
DataInputStream dIn = new DataInputStream(socket.getInputStream());
int length = dIn.readInt(); // read length of incoming message
if (length > 0)
{
byte[] message = new byte[length];
dIn.readFully(message, 0, message.length); // read the message
return new String(message, Charset.forName("UTF-8"));
}
}
catch (IOException e)
{
}
return "";
}
您写入的套接字必须是您需要将消息发送到的客户端,而且客户端必须准备好在那时读取该消息,这是一个基本的客户端服务器程序Connect multiple clients to one server