【问题标题】:Interleaved messages from multiple clients to a server从多个客户端到服务器的交错消息
【发布时间】:2011-06-12 12:57:56
【问题描述】:

这个问题与Socket programming in CSleeping a worker thread in a file server有关。

我对套接字和 pthreads 非常陌生,并且必须处理相当大的项目。

我想知道以下情况是否可行以及如何实现? 我有多个客户端到服务器,每个客户端向服务器发送多条消息。每个客户端都由一个任务/工作线程提供服务。客户端发送一条消息,并在收到回复后发送下一条消息,直到完成并关闭连接。任务线程处理来自客户端的一个请求,发送它的回复并休眠,直到它收到来自同一客户端的下一条消息,直到客户端关闭连接并且线程退出。

现在,正如我所说,多个客户端同时连接。服务器是否会处理来自一个客户端的所有消息,然后为下一个客户端提供服务,或者在消息到达时以交错的方式接收消息,保持所有“活动”客户端的连接保持打开状态。

【问题讨论】:

  • 我的问题似乎在重复,但不是很清楚,所以不得不问。希望收到任何处理此类事情的在线教程的链接
  • 两种情况都是可能的。获取这本书 - unpbook.com - 这是你能找到的最好的教程。如果您太不耐烦,请阅读 Beej 的指南beej.us/guide/bgnet

标签: c linux sockets pthreads


【解决方案1】:

服务器是否会处理来自一个客户端的所有消息,然后为下一个客户端提供服务或在消息到达时以交错的方式接收消息,保持所有“活动”客户端的连接保持打开状态。

服务器进程可以同时或以交错方式处理多个客户端,具体取决于您的 CPU 和编程架构。

线程编程 + 多核或多 CPU 可以同时处理这些请求。 ^_^

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-15
    • 2014-10-17
    • 2012-12-05
    • 1970-01-01
    • 1970-01-01
    • 2017-09-15
    • 1970-01-01
    相关资源
    最近更新 更多