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

Java 使用套接字向特定客户端发送消息,java,Java,我有3个客户端使用套接字通过服务器连接。有谁能帮助我理解这样一个概念:我如何向客户机1发送消息而不向客户机2或客户机3发送消息,或者我如何向客户机2发送消息而不向客户机1和客户机3发送消息。对不起,我的英语不好。要向客户机发送消息,您需要获取输出流例如,您可以执行以下操作:- public Boolean writeMessage(String Command) { try { byte[] message = Command.getBytes(Charset.f

我有3个客户端使用套接字通过服务器连接。有谁能帮助我理解这样一个概念:我如何向客户机1发送消息而不向客户机2或客户机3发送消息,或者我如何向客户机2发送消息而不向客户机1和客户机3发送消息。对不起,我的英语不好。

要向客户机发送消息,您需要获取输出流例如,您可以执行以下操作:-

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;
}
要在另一端读取消息,请获取sockets 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 "";
}

您写入的套接字必须是您需要向其发送消息的客户端,而且客户端必须准备好在此时读取该消息,下面是一个基本的客户机-服务器程序

向客户机发送消息。您需要获取套接字的输出流,以便可以将数据写入该流。例如,您可以执行以下操作:-

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;
}
要在另一端读取消息,请获取sockets 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 "";
}

您写入的套接字必须是您需要向其发送消息的客户机,而且客户机当时必须准备好读取该消息,这是一个基本的客户机-服务器程序

您的代码在哪里?到目前为止,你都试了些什么。我不知道怎么做。这就是为什么我在Priyamal寻求帮助。我也回答了同样的问题,在回答中,你可以参考以下解释:D你的代码在哪里?到目前为止你都做了些什么。我不知道怎么做。这就是为什么我在Priyamal寻求帮助的原因。我也回答了同样的问题,答案中有你可以参考的解释:D