C++中使用Socket通信,在服务器端,如何实现接收数据和发送数据在不同的线程中

创建一个接收socket数据的线程,从port口接收数据后,再传入内部处理线程;
在内部处理线程执行结束后,再做成回复消息,想通过另一个线程,向接收数据的port口发送消息。
上面的设计,怎么使用另一个线程向port口发送消息呢?我实现的发送失败。

1个回答

首先呢,你需要确定一点,你的两个线程中用到的socket必须是同一个,你可以选择做成全局变量或者更常用的方法是做成单例类。然后你再考虑如何数据传递给另一个线程,这也很简单,数据传递可能会比较费劲,这个涉及到操作系统的知识,但是你可以也选择用一个全局的结构体或者用来存放数据的单例类,然后在发送线程中去检测他,方式也很多啦,阻塞非阻塞的都行。在linux下比较常见的就是select。或回调主动发送。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐