免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1613 | 回复: 4
打印 上一主题 下一主题

[网络] socket编程 select的疑问 [复制链接]

论坛徽章:
1
卯兔
日期:2014-05-29 10:21:33
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-02-23 17:17 |只看该作者 |倒序浏览
本帖最后由 li_freedom 于 2014-02-23 18:44 编辑

请问下,在多个客户端连接服务器时,服务器端怎么用select判断是哪个客户端连接的,

比如,有A,B,C三个客户端连接服务器,A请求服务器给发送个“a”,B请求服务器发送“b”,c请求服务器发送“c”。

那么服务器怎么判断是哪个客户端发出的请求?



新人刚开始学socket编程,可能问的问题比较简单,希望高手给解释一下。   谢谢。

论坛徽章:
0
2 [报告]
发表于 2014-02-23 18:30 |只看该作者
不是特别明白你的意思,“那么服务器怎么判断是哪个服务器发出的请求?”这里应该是客户端的请求吧

服务器端底层通过文件描述符来标识不同的请求,你的意思应该是服务器软件如何辨别不同的客户端,那就要根据客户端发送的数据来判断了,比如a就是客户端A,相当于自己定义一个协议。

论坛徽章:
1
卯兔
日期:2014-05-29 10:21:33
3 [报告]
发表于 2014-02-23 18:47 |只看该作者
ragingCow 发表于 2014-02-23 18:30
不是特别明白你的意思,“那么服务器怎么判断是哪个服务器发出的请求?”这里应该是客户端的请求吧

服务 ...



对,我写错了   我的意思就是   服务器怎么判断是哪个客户端的请求



你的意思是,  没办法从连接描述符上面来判断是哪个客户端发来的请求,  只能客户端发来的内容上面判断是吗?

论坛徽章:
0
4 [报告]
发表于 2014-02-23 23:24 |只看该作者
回复 3# li_freedom

嗯,是这个意思。

你应该把你真正的需求说出来,就好像你同时跟三个陌生人打电话,虽然三个号码不一样,但你无法通过号码判断对方是谁,只有通过跟对方的信息交流才能知道。

   

论坛徽章:
11
技术图书徽章
日期:2014-03-01 14:44:34天蝎座
日期:2014-05-21 22:11:59金牛座
日期:2014-05-30 17:06:14
5 [报告]
发表于 2014-02-24 11:29 |只看该作者
有看过任何一个服务端的例子么?哪怕是几十行的。如果看过,就容易理解了,select处理的是fd,而每个fd都在accept时与(本地IP,本地端口,远程IP,远程端口)建立了一一对应的关系,所以服务器很清楚每个fd对应的客户端,至于如何获取IP和端口信息,请看socket API文档。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP