【问题标题】:multi thread receiver in single socket单套接字中的多线程接收器
【发布时间】:2020-11-12 23:32:57
【问题描述】:

使用 TCP,我正在设计一些类似 next 的程序。

客户端在许多线程中的接收正在等待一个服务器的发送消息。但是,有一个条件。 recv 正在等待特定的发送消息。

例如

客户

thread 1: recv (key = 4)
thread 2: recv (key = 6)
thread 3: recv (key = 9)

服务器

send(value = A) for key 4 - send(value = B) for key 9 - send(value = C) for key 6

那么,线程 1 应该得到值 A,线程 3 应该得到值 B,线程 2 应该得到值 C

recv函数如何区分服务器发送消息?有什么好的想法或解决方案吗? 谢谢。

【问题讨论】:

  • @Cacahuete Frite thx。那么,您能推荐一些模型或解决方案吗?

标签: c linux sockets server client


【解决方案1】:

recv 不支持内容过滤数据接收。

您应该自己区分这些类型的消息。

【讨论】:

  • 感谢您的回答。在实践中,您能推荐任何好的模型或解决方案吗?
  • @lemni 您可以创建一个线程来接收消息,然后将它们发送到正确的线程。或者您可以在一个线程中处理所有消息。
  • @user253751 感谢您的建议。我想知道第二句的意思,是不是一个线程recv它并转发到正确的线程?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-19
  • 1970-01-01
  • 2021-06-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多