300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > java打开客户端程序_Java客户端服务器应用程序 - 已在使用的地址:connect

java打开客户端程序_Java客户端服务器应用程序 - 已在使用的地址:connect

时间:2023-10-09 05:34:08

相关推荐

java打开客户端程序_Java客户端服务器应用程序 - 已在使用的地址:connect

我目前正在开发一个简单的多人游戏,其中有几个客户需要连接到服务器 .

我的服务器由一个serverSocket组成 . 此serverSocket接受传入连接并将其交给启动单独线程的连接对象 .

ServerSocket seso = new ServerSocket(12345);

while(true){

Socket toClient = seso.accept();

new Connection(toClient); //creates a thread that opens streams etc

}

客户端打开一个新的Socket并连接到此服务器 .

Socket toServer = new Socket();

toServer.setReuseAddress(true);

toServer.bind(new InetSocketAddress(65432)); //always using the same port

toServer.connect(new InetSocketAddress(serverIP,12345));

现在如果我使用 toServer.close(); 关闭与服务器的连接并尝试再次连接到服务器,我会收到"address already in use: connect"异常 .

使用TCPView我可以看到客户端procress的状态更改为TIME_WAIT . 但是,由于 setReuseAddress(true) ,我不应该再次使用此端口吗?我使用它错了还是服务器问题?

我总是在toClient和toServer上调用.close() . 然而,我总是要等到套接字完全关闭(在TIME_WAIT之后),然后该客户端才能再次连接到服务器 .

当我关闭整个应用程序时,套接字立即关闭(不在状态TIME_WAIT),此客户端可以连接到我的服务器 . (并且我的服务器中存在连接重置异常)

如果不关闭应用程序,我怎么能这样做?

谢谢你的帮助 .

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。