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 你又不是妹子,,怎么以身相许啊
2 年多之前 回复
huyoufu200920201078
huyoufu200920201078   2016.03.21 11:46

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

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

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

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

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

qq_25134045
qq_25134045 这三个程序可以运行在一台主机上是吧? 如果改了其中一个客户端的端口号的话,那服务器的端口就和一个客户端的不一样了啊。。。。
2 年多之前 回复
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);
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Java swing + socket 写的一个五子棋网络对战游戏
网络对战版本的五子棋游戏,包含服务端和客户端(c/s模式) ,写成此文章给需要或想研究的人一些参考(相关代码我会放在本文的最后) 游戏效果图: ![这里写图片描述](https://img-blog.csdn.net/20180512234409901?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzIwNjk4OTgz/font/5a...
Socket游戏编程-五子棋(服务器+多客户端)
转载自:http://blog.csdn.net/andrew_wx/article/details/6642517#comments 最近两天发的博文较少。。因为这个例子太长啦。 下面引用下书上的话,来引导这个例子: 游戏规则如下: (1)玩家通过 internet 和 坐在同一桌的另外一个玩家对弈,一个玩家选择黑方,另一个玩家选择白方。 (2)游戏开始后,计算机自动在15x1
Java联网五子棋(附源码)
上学期写的五子棋,翻出来整理下。 主要用到Socket网络编程,还模拟了网络传输协议,将各种操作请求和聊天信息通过消息头包装和区分,在服务端通过消息头来判断和解析不同的请求。 服务端将所有客户端存在Map集合里,将玩家配对信息存在另外的map集合,以此来管理配对玩家之间的游戏互动。大概原理就是用一个HashMapManager来管理,当客户端发来请求,服务端先根据客户端id检索客户端是否已经存
java 五子棋游戏(基于SOCKET编程)
用JAVA开发的五子棋小游戏,能够实现两个人的网上对战。完整的源代码
C++ 基于CSock的远程五子棋对弈程序
一、程序说明 基于CSock的远程五子棋对弈程序设计 (1)按Socket异步网络通信方式设计具有C/S模式的数据传输模块; (2)在服务器与客户端各设计一个五子棋棋盘,用于博弈。 (3)博弈开始双方选定黑白棋子,按规则下子,两端同时显示棋局状态,并计时, 超时者判负。 (4)当任何方向上某一色棋子连成五个,判定该方赢棋。二、程序界面 三、 程序分析 1.设计思想 (
Java Socket 客户端与服务器端的简单交互
一直想了解客户端与服务器之间的底层的一些交互 我刚开始看到关于解析header的一些例子,但是不清楚是客户端呢还是服务器端 后来,我发现,我的想法是有问题的,解析header只是例子的一个体现方式。 客户端 request 服务器 response  不管哪个都有头部信息,所以重点不是在这里。 服务器端是监听某个端口是否有客户端对其进行连接,socket就像是一个管道,client
Java 利用 Socket 实现服务器客户端聊天
Socket是网络编程中最基本的通信接口,常用的网络辅助类,比如URL等之类,其底层还是基于Socket来实现的。 而Socket,形象来说,就是连接通信的两端,比如这样 S<==>S,中间的通道就是网络了,而简单地利用Socket,我们就可以来实现一个简单的聊天功能。 1. Server 端主要是利用ServerSocket的accept方法来等待客户端的连接,如果客户一直没有连接,则会在这里等待,直到客户端请求到来。 而客户端就是一个Socket,当客户端请求到来的时候,accept会返回一个Socke
Java实现的联机多人对战五子棋游戏,带聊天功能
Java实现的联机多人对战五子棋游戏,带聊天功能,可开多队同时对战
Java实现一个简单的两人五子棋游戏(一) 系统设计
1)模块划分 主模块:调用其他模块实现五子棋功能 棋盘模块:绘制五子棋棋盘 落子模块:让玩家在合法位置上落子 功能控制模块:包含了三个功能函数,可被其他模块调用。主要功能为画棋子、判断胜负和行棋方转换 信息模块:输出提示信息 2)数据结构设计 坐标变换:为了编程方便,设立棋盘坐标系:棋盘范围(0,0)-(18,18)。实际设备坐标系,单位是像素,左上为坐标原点,坐标轴正方向采
websocket入门(3)——网络对战版五子棋交互逻辑
版本号:20170617(可能有点过时)环境 服务器端使用Nodejs6.9.4 + Express4.x + Socket.IO 2.02 客户端使用socket.io.js 名词和变量游戏大厅1. 建立连接后就认为在游戏大厅中; 2. 断开连接(比如关闭浏览器或者其他),认为离开游戏大厅; 3. 即使在【游戏房间】中,也依然认定其在游戏大厅; 4. 通过服务器端onlineUsers(Map结构