2 qq 25134045 qq_25134045 于 2016.03.21 11:40 提问

利用java socket 写的一个联机的五子棋游戏,服务器端和客户端的问题,大神求教啊。。

利用java socket 写的一个联机的五子棋游戏,一个服务器端的程序和两个玩家的客户端程序,可不可以都运行在同一台主机上啊?
我运行服务器端和其中一个玩家的客户端程序时,正常。但是运行第二个玩家的客户端程序时,就出现了
Java.net.BindExecption Address already in use: JVM_Blind. 的异常。怎么办?

还有我打算客户端把下的棋子的对象传给服务器端,服务器再把这个玩家传来的对象实例,发送给另一个玩家。可行吗? 非静态内部类是不是不能序列化?

大神,求教啊。。。。。

5个回答

qq_25134045
qq_25134045   2016.03.21 11:43

自己顶啊,大神呢??快来呀 。。。。说明白了 以身相许呀。。。。。

Royal_lr
Royal_lr 你又不是妹子,,怎么以身相许啊
一年多之前 回复
huyoufu200920201078
huyoufu200920201078   2016.03.21 11:46

BindExecption Address already in use
socket问题bind的时候,IP和端口号是不是一样?

qq_25134045
qq_25134045 端口号是一样的。。。用cmd看过了,其他的程序没有占用这个端口。
一年多之前 回复
Royal_lr
Royal_lr   Ds   Rxr 2016.03.21 13:14

你这个可能是开启第二个的时候重新开了一个socket,,具体还得看下代码

qq_25134045
qq_25134045 是啊,开第二个的时候和第一个程序都一样,有一个套接字,端口都一样。有什么问题吗???
一年多之前 回复
oBlast1
oBlast1   2016.03.21 17:52

同一个端口被多个socket绑定的时候就会出现这个问题 你两个客户端的端口改成不一样的应该就可以了

qq_25134045
qq_25134045 这三个程序可以运行在一台主机上是吧? 如果改了其中一个客户端的端口号的话,那服务器的端口就和一个客户端的不一样了啊。。。。
一年多之前 回复
snailplus
snailplus   2016.03.21 21:24

你的两个客户端使用的端口是一样的,并使用同一个jvm在同一台机器上启动,必然冲突。
客户端配置不同端口号,服务器端可以通过线程也配置不同端口号。
或者你可以用两个java运行环境尝试,一个环境启动一个客户端。(未试验过)

qq_25134045
qq_25134045 客户端的这一句:Socket socket = new Socket("27.213.205.164",9000); 这个端口号,不应该和服务器端的ServerSocket serverSocket = new ServerSocket(9000);
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!