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

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

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

问题补充:我在线程A中跑的是服务器接收多个客户端连接请求并用recv处理数据,在另一个线程中用send 发送给相应的线程响应;
...全文
198 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
javamy023 2013-01-15
  • 打赏
  • 举报
回复
来看看,需要下载东西,积分怎么得!!
shaoxiaojing5193 2012-09-17
  • 打赏
  • 举报
回复


这有很多种情况啊,你要贴上主要代码。
比如,你的某个客户端断开连接了,而你的服务端还给它send 或者 recv,就会出错,可能直接把该套接字关闭,所以整个服务端就关闭咯。。。

21,597

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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