A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 侯慧杰 中级黑马   /  2012-7-6 20:20  /  2262 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

服务器与客户端可以通信,但客户端与客户端通信的实现什么结构呢?是不是在每个客户端都要创建局域网中所有计算机的socket和thread呢??

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

8 个回复

倒序浏览
不用,客户端想跟谁聊的时候再创建套接字和线程就可以了,平时只要和服务器保持联系,然后服务器将整个房间的信息传送给你

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
就像打电话一样,给别人打电话,都是先打到电信的服务器,服务器再找到你要打电话的人,把你和他连接起来。
所以你跟他不是直线关系,是通过了服务器的。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报

客户端与客户端通信, 你把你要通讯的远程客户端的IP和端口号和信息发送给服务器,然后服务器检查一下你的远程客户端是否在线,如果在线,把信息转发给
远程客户端,如果不在线保存离线信息在服务器上,最好建立UDP连接

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
戴水平 发表于 2012-7-7 12:19
客户端与客户端通信, 你把你要通讯的远程客户端的IP和端口号和信息发送给服务器,然后服务器检查一下你的 ...

为什么要用udp啊》??udp的通信不可靠啊,亲。。。
回复 使用道具 举报
TCp 是面向连接的非常占用服务器资源
UDP 是面向无连接的,这样可以减少对服务器的负担

评分

参与人数 2技术分 +1 黑马币 +1 收起 理由
宋天琪 + 1
侯慧杰 + 1 赞一个!

查看全部评分

回复 使用道具 举报
戴水平 发表于 2012-7-7 13:18
TCp 是面向连接的非常占用服务器资源
UDP 是面向无连接的,这样可以减少对服务器的负担 ...

回答的好
回复 使用道具 举报
古古头 发表于 2012-7-6 21:58
不用,客户端想跟谁聊的时候再创建套接字和线程就可以了,平时只要和服务器保持联系,然后服务器将整个房间 ...

客户端创建线程的话创建的应该是和另一个客户端的线程,服务端应该把所有客户端套接字以及地址发给我我才能与其他的客户端通信把????

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
houhuijie135 发表于 2012-7-7 13:25
客户端创建线程的话创建的应该是和另一个客户端的线程,服务端应该把所有客户端套接字以及地址发给我我才 ...

如果是你和另一个客户端单独聊天时,这样做还行,如果是群聊呢?
群聊的时候,在通话期间,你难道要监听其它所有人,然后轮番给别人发送信息?
我觉得客户端用一个线程保持和服务器的联系,并即时更新其它客户端的资料,
如果要单独聊天,就可以直接和对方建立连接,如果要群聊,
所有在其中聊天的人全部向服务器发送和接受数据,
把服务器作为一个中转站。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马