2010-01-25 25 views
1

我正在使用我在线发现的C套接字库来实现一个tcp套接字数据传输程序。使用单个TCP套接字读写线程

是否有可能使2个线程共享相同的套接字连接(1个读取和1个写入),并让读取线程在写入线程不断写入数据的同时执行阻塞读取和接收数据?

我见过的所有示例套接字程序都只能进行单向通信,或者仅在收到后才发送数据。

谢谢。

回答

2

我不知道你为什么不能这么做的任何技术原因。另一个问题是你的情况是否可行。 :)

您希望避免此多线程类型的方法的主要情况是读取和写入在应用程序级别相互依赖。我不知道你在处理数据方面做了什么,但读者/写者的方法可能很难放松。

+0

好的谢谢,只是想确保它是可能的,因为我从来没有见过它的任何例子 – user258691 2010-01-25 19:25:39

+0

其实我的担心是:如果你在读取线程中读取套接字时调用一个互斥锁,那么写入线程将如何访问插座。 – user258691 2010-01-25 19:37:43

+0

那么,如果您使用互斥体来一次只允许一个线程访问套接字,那么您的2线程模型将无法工作。实质上,你必须让两个线程访问套接字的文件描述符。 – Seth 2010-01-25 19:55:14