我有一个带有serversocket的服务器,以及一个也是一个线程的客户端。 在主客户端中,我创建了80个客户端线程实例,并且每个实例都打开了与服务器的连接(使用套接字)。客户端和服务器都在同一台计算机上,所有计算机都使用相同的localhost和端口。 服务器端的serversocket只接受连接到它的第一个线程,并为其余线程抛出异常,因为它们都来自同一个IP到同一个端口。我该如何解决这个问题?我需要80个线程连接到同一台计算机上的同一台服务器(使用相同的IP和端口)。 PS。我也在使用多线程,所以在serversocket接受后,它会创建并启动一个新线程来处理客户端的请求。 我只需要用Java做这个。 我将非常感谢您的快速反应。提前谢谢。
答案 0 :(得分:0)
如果您无法通过IP和PORT唯一标识客户端,则需要考虑其他问题。在发送数据包时添加某些生成的唯一ID会有所帮助。当服务器收到客户端初始请求时,它可以在为客户端创建线程时设置该唯一ID。
每次使用时都能获得独特的东西:
UUID.randomUUID()
来自java.util.UUID的; package
并且导致每个客户端具有相同的IP和PORT我假设每个客户端都从服务器获得每个响应。因此,查看包是否适用于正确的客户端的逻辑需要在客户端。
如果这不是您要找的,请更新您的问题。