fwg10020 发表于 2012-09-16 22:18

Linux Socket编程求助啊,一个服务器和多个客户端通信问题求助

做一个小项目,要求如下:在linux下,用一个线程 实现一个服务器和多个客户端的通信,客户端和服务器按照TPC MODBUS协议进行传输数据,客户端是用的MODSCAN软件;我用Linux socket接口把代码编写完成了,由于不能使用多个线程,因此我用了linux中Socket的 select 函数,FD_SET函数,FD_ISSET 函数;select函数判断是否有文件状态发生变化,FD_ISSET判断是哪个客户端来了数据,进而调用recv函数去接收,当recv函数返回值是0时,调用close函数将客户端关掉;

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

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

jogger0703 发表于 2012-09-19 09:28

方便的话,select的代码拿出来看看

o_unix 发表于 2012-09-19 15:22

1是select的问题
2你是如何模拟的客户端,一个线程模拟一个客户端,还是怎么模拟的?

abren7758521 发表于 2012-09-20 16:55

select 不是监控么,有变化 你就开辟一个句柄出来,针对哪个句柄操作怎么会全部关闭呢
页: [1]
查看完整版本: Linux Socket编程求助啊,一个服务器和多个客户端通信问题求助