使用套接字向特定客户端发送消息

时间:2016-04-23 20:35:59

标签: java

我有3个客户端使用套接字通过服务器连接。任何人都可以帮助我理解如何在不将消息发送到客户端2或客户端3的情况下将消息发送到客户端#1的概念,或者如何在不将消息发送到客户端1和客户端的情况下将消息发送到客户端2抱歉我的英语不好。

1 个答案:

答案 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