Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将用户名包含在消息中,然后从中获取它?_Java_Sockets_Client Server - Fatal编程技术网

Java 如何将用户名包含在消息中,然后从中获取它?

Java 如何将用户名包含在消息中,然后从中获取它?,java,sockets,client-server,Java,Sockets,Client Server,我正在使用java.net发送消息。服务器部分与许多客户机一起工作,根据我从哪个客户机接收消息,我选择处理消息的方式。因为我认为我需要将用户名重新编码到消息中,然后从那里获取它,使消息的其余部分保持原样,并将其发送到进程中。如何做到这一点?这些问题通常是如何解决的?当接收数据时,您可以根据发送方的IP地址识别客户端。如果仍然需要clientname,请在打开连接后将其作为第一条消息的一部分发送。然后,您可以将clientname与其IP地址关联起来。我曾考虑过根据IP地址识别客户端,但有些用户可

我正在使用java.net发送消息。服务器部分与许多客户机一起工作,根据我从哪个客户机接收消息,我选择处理消息的方式。因为我认为我需要将用户名重新编码到消息中,然后从那里获取它,使消息的其余部分保持原样,并将其发送到进程中。如何做到这一点?这些问题通常是如何解决的?

当接收数据时,您可以根据发送方的IP地址识别客户端。如果仍然需要clientname,请在打开连接后将其作为第一条消息的一部分发送。然后,您可以将clientname与其IP地址关联起来。

我曾考虑过根据IP地址识别客户端,但有些用户可能会在办公室的计算机上运行客户端应用程序,晚上在家里的计算机上运行客户端应用程序。如果我将它作为消息的一部分发送,我如何从消息中获取它,然后将消息的其余部分(必须具有强大的结构)传递给处理?正如我所说的,在打开与服务器的连接后,将clientname作为第一条消息的一部分发送,然后将clientname与IP地址关联起来。不要忘记,当连接关闭时,这个IP地址可能不再有效。因此,当连接关闭(结束)时,您必须再次删除用户名和IP地址之间的当前关系。为了简化识别用户名的任务,只需首先发送一条消息,其中只包含用户名。而不是作为其他数据的一部分。是的,没错。但是我需要检查每条消息,因为我有几个客户端,只有一个服务器。消息杂乱无章地到达服务器,这意味着我不知道这条消息来自谁,也不确定您使用的是什么协议,但对于TCP,您有发送者(因为每个客户端有一个TCP连接),而对于UDP,您收到的每条消息都有发送者IP地址。如果您需要处理来自一台计算机的多个连接,请使用发件人的端口号来标识连接。我理解这一点,但如果用户希望根据其规则处理其邮件,但更改了IP地址,该怎么办?答案可在[此处][1]找到。非常接近[1]: