2013-04-27 81 views
0

我有一个服务器与一个serversocket和一个客户端,它也是一个线程。 在主客户端中,我创建了80个客户端线程实例,并且其中每个实例都与服务器打开了一个连接(使用套接字)。客户端和服务器都在同一台计算机上,都使用相同的本地主机和端口。 服务器端的serversocket只接受连接到它的第一个线程,并为其余线程抛出异常,因为它们都来自同一个IP到同一个端口。我该如何解决这个问题?我需要80个线程连接到同一台计算机上的同一台服务器(使用相同的IP和端口)。 PS。我也使用多线程,所以在serversocket接受之后,它会创建并启动一个新线程来处理客户端的请求。 我只需要在Java中执行此操作。 我将非常感谢您的快速回复。提前致谢。从客户端连接到同一个serversocket的几个线程,全部在localhost

回答

0

如果您无法通过其IP和PORT唯一标识客户端,则需要考虑其他问题。发送数据包时添加某些生成的唯一ID有帮助。当服务器收到客户端初始请求时,它可以在为客户端创建线程时设置该唯一标识。

为了让每一次独特的东西,你可以使用:

UUID.randomUUID() 

从java.util.UUID中; package

并导致每个客户端具有相同的IP和端口我假设每个客户端都从服务器获取每个响应。所以看看包是否适合正确客户端的逻辑需要在客户端。

如果这不是你正在寻找的请更新你的问题。

+0

非常感谢您的回答。但我如何使用这个UUID.randomUUID()?我在哪里添加它,以便seversocket识别来自相同IP和PORt的不同线程? – Shereen 2013-04-27 13:37:26

+0

在将数据包发送到serversocket时添加它。然后,如果没有用该uuid识别的客户端,则为客户端创建一个新线程。 – 2013-04-27 13:46:09

相关问题