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 发送给相应的线程响应;
现在问题是:打开两个客户端软件可以分别进行各自的独立的通信,传输数据;但当关掉一个时,另一个的通信也中断了;很郁闷!!这是为什么啊?也就是客户端之间还有是互相影响,影响在关断的时候,当一个关断,会影响另一个的通信,这是为什么呢?
问题补充:我在线程A中跑的是服务器接收多个客户端连接请求并用recv处理数据,在另一个线程中用send 发送给相应的线程响应;
...全文
相关推荐
socket 一个服务器对应多个客户端使用多线程
在标题"socket 一个服务器对应多个客户端使用多线程"中,提到的是使用Socket编程来设计一个服务器,该服务器能够同时处理来自多个客户端的连接请求,这通常被称为“一对一”或“一对多”模型。
linux下C语言SOCKET编程客户端、服务器端代码
本篇文章将深入探讨Linux下的C语言SOCKET编程,包括客户端和服务器端的实现。首先,我们要理解SOCKET的基本概念。
Linux下的Socket编程实例(阻塞和非阻塞)
Linux下的Socket编程实例(阻塞和非阻塞)通过分析给定的文件信息,我们可以生成以下知识点:Socket编程概述Socket 编程是指使用操作系统提供的 socket 编程接口来实现网络通信的编程方式
SOCKET网络编程服务器端和客户端代码(同步通信)
**服务器端编程**:服务器端是等待并响应客户端请求的程序。在`SOCKET`编程中,服务器首先创建一个`SOCKET`,然后绑定到特定的IP地址和端口号,监听来自客户端的连接请求。
Linux下基于UDP的socket编程,适用多客户端之间,服务器与客户端之间的通信。客户端和服务端
Linux下基于UDP的socket编程,适用多客户端之间,服务器与客户端之间的通信。客户端和服务端代码分开了。notepad++可打开


驱动开发/核心开发
