多客户端同时通信

mdtypj 2011-06-28 12:47:40
一个服务器,多个客户端同时通信,怎么区分各个客户端呢。求教。谢谢!
...全文
93 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
mdtypj 2011-06-28
  • 打赏
  • 举报
回复
是不一样啊,就是不知道怎么区分啊,比如,有2正在连接的socket怎么确定那个发送了的数据,返回个那个socket
kyotrue 2011-06-28
  • 打赏
  • 举报
回复
SOCKET不一样啊。
向立天 2011-06-28
  • 打赏
  • 举报
回复
简单点你在制定协议的时候通过一种算法自己为每个连上来的客户端分配一个唯一识别的ID好
然后自己进行管理
客户端发消息过来一定要带上这个身份标记用来让服务器进行识别
这样就可以了
愤怒的泡面 2011-06-28
  • 打赏
  • 举报
回复
服务端的端口只有一个,客户端的端口如果你不进行绑定的话,系统就会随机分配一个可用的端口与服务端进行通信。每个客户端和服务端进行连接了之后,都会返回一个套接字句柄的,可以通过该句柄来标识是哪个客户端。一般来说服务端都应该维护一个客户端列表
mdtypj 2011-06-28
  • 打赏
  • 举报
回复
那个select方法我不会用啊,我想电脑的ip可以有相同的他怎么区分,端口也是相同的。
czydxj 2011-06-28
  • 打赏
  • 举报
回复
进行连接时就可获取客户端的ip及端口号随后客户端再发送相关信息,服务端接收到后建立客户端套接字相关联的信息。
shenyi0106 2011-06-28
  • 打赏
  • 举报
回复
通过socket句柄来区分
hahayezhe112 2011-06-28
  • 打赏
  • 举报
回复
多线程可以啊,
他们的socket 实际就是一个dword 4字节是唯一的!
畅想畅享 2011-06-28
  • 打赏
  • 举报
回复
SOCKET 本质就是一个int型的句柄
mdtypj 2011-06-28
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 sky101010ws 的回复:]
每个连接都有不同的套接字:即IP地址和端口号
你可以采用select的方式测试哪个套接字发送了数据
如果你要采用多线程分别对不同的套接字进行接收数据,就不用说了吧
如果采用异步、事件、重叠IO等等,都是可以获取套接字的
[/Quote]

那个多线程不能用这个方法吗
龙行天下之Sky 2011-06-28
  • 打赏
  • 举报
回复
每个连接都有不同的套接字:即IP地址和端口号
你可以采用select的方式测试哪个套接字发送了数据
如果你要采用多线程分别对不同的套接字进行接收数据,就不用说了吧
如果采用异步、事件、重叠IO等等,都是可以获取套接字的

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧