客户端的几个线程连接到同一个serversocket,所有这些都在localhost上

时间:2013-04-27 12:23:20

标签: java multithreading localhost serversocket

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

1 个答案:

答案 0 :(得分:0)

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

每次使用时都能获得独特的东西:

UUID.randomUUID()
来自java.util.UUID的

; package

并且导致每个客户端具有相同的IP和PORT我​​假设每个客户端都从服务器获得每个响应。因此,查看包是否适用于正确的客户端的逻辑需要在客户端。

如果这不是您要找的,请更新您的问题。