多个Java套接字连接

时间:2012-03-28 08:14:23

标签: java sockets

我创建了这个游戏机器人,它连接到游戏,并开始播放。 我的问题是,我不能启动多个,因为另一个不会起作用。

如果我运行同一程序的2个实例,套接字是否可能相互干扰?毕竟,他们使用相同的端口连接到同一个IP?

有时在我关闭(只关闭cmd)后,程序无法再次连接。是因为我没有关闭连接吗? 我希望这还不错,我只需要发布我的源代码

最好的问候。

3 个答案:

答案 0 :(得分:1)

如果您正在使用特定的TCP端口,那么有一个关闭等待期,此端口暂时无法声明临时性。多个程序也无法侦听同一个TCP端口。使用线程。

答案 1 :(得分:1)

可以多次连接到同一个插槽/端口。实际上套接字是双对等体:{client ip / client port} {server ip / server port}。连接到服务器时,将动态分配客户端端口。每个客户端将有一个新的不同的客户端端口。所以它应该工作,除非服务器端禁止它。

答案 2 :(得分:1)

您应该拥有一个侦听多个连接的服务器。服务器绑定到端口,一旦该端口正在使用,另一个应用程序就无法使用它。所以对于服务器只有一个实例。只要服务器接受多个连接,多个客户端就可以连接到此IP /端口。

如果客户端连接到服务器而其他客户端停止工作,则可能是因为服务器不支持多个客户端。为此,您需要在服务器中使用多线程。服务器应该接受客户端套接字并使用它自己的StreamReader / Writer对象创建客户端的新实例。

http://tutorials.jenkov.com/java-multithreaded-servers/multithreaded-server.html