免费注册 查看新帖 |

Chinaunix

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

[Linux] Linux Socket编程求助啊,一个服务器和多个客户端通信问题求助 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-09-16 22:18 |只看该作者 |倒序浏览
做一个小项目,要求如下:在linux下,用一个线程 实现一个服务器和多个客户端的通信,客户端和服务器按照TPC MODBUS协议进行传输数据,客户端是用的MODSCAN软件;我用Linux socket接口把代码编写完成了,由于不能使用多个线程,因此我用了linux中Socket的 select 函数,FD_SET函数,FD_ISSET 函数;select函数判断是否有文件状态发生变化,FD_ISSET判断是哪个客户端来了数据,进而调用recv函数去接收,当recv函数返回值是0时,调用close函数将客户端关掉;

现在问题是:打开两个客户端软件可以分别进行各自的独立的通信,传输数据;但当关掉一个时,另一个的通信也中断了;很郁闷!!这是为什么啊?也就是客户端之间还有是互相影响,影响在关断的时候,当一个关断,会影响另一个的通信,这是为什么呢?  

问题补充:我在线程A中跑的是服务器接收多个客户端连接请求并用recv处理数据,在另一个线程中用send 发送给相应的线程响应;

论坛徽章:
0
2 [报告]
发表于 2012-09-19 09:28 |只看该作者
方便的话,select的代码拿出来看看

论坛徽章:
0
3 [报告]
发表于 2012-09-19 15:22 |只看该作者
1是select的问题
2你是如何模拟的客户端,一个线程模拟一个客户端,还是怎么模拟的?

论坛徽章:
0
4 [报告]
发表于 2012-09-20 16:55 |只看该作者
select 不是监控么,有变化 你就开辟一个句柄出来,针对哪个句柄操作  怎么会全部关闭呢
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP