多个线程如何实现同时调用一个socket链接句柄sock发送数据?
写一个多线程socket程序,其中一个线程为连接某个socketserver建立一个sock链接,其他多个随机线程从设备收取数据并且将数据通过server的套接这也给套接...
写一个多线程socket程序,其中一个线程为连接某个socket server建立一个sock链接,其他多个随机线程从设备收取数据并且将数据通过server的套接这也给套接字sock发送数据,时候可行?如何实现?
展开
1个回答
展开全部
可以实现,建立一个SOCKET列表就行了,列表中保存SOCKET的状态,比如:已处理和未处理
追问
用poll函数可以分别监听read的状态和write的状态,多个随机线程在写以前分别通过poll函数判断写socket套接字的write状态,即是否可写。如果一个在写,另外一个判断时就是不可写状态。当然楼上的方法也是一种解决方案,设置一个全局变量,对各个线程的写做状态标识,一个线程写时将标识置为不可写,另一个线程写时等待前一个线程将标识置为可写后再写。这个思路和我前期想的设置公共内存加锁功能相似。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询