从几个套接字读取:单线程,选择与多线程读取

时间:2015-01-20 16:11:52

标签: c multithreading sockets tcp udp

我正在设计一些基于TCP和UDP的协议,我需要同时接收来自多个客户端的数据:每个客户端将通过2个套接字(TCP和UDP)发送这些数据。我怀疑如何实现服务器。我正在经历几个选择:

  1. 使用select()(1选择)实现一个线程中所有套接字的所有读取。
  2. 处理一个线程中的所有UDP套接字和TCP - 处理另一个线程(2个选择)。
  3. 要在单独的线程中运行每个接收,套接字处于阻塞模式。
  4. 我的目标是在UDP套接字上实现最大吞吐量(最小丢失数据报),并在TCP套接字上实现最短处理时间。我认为在多核CPU上,选项#3可以提供更高的效率。我是对的吗?

1 个答案:

答案 0 :(得分:1)

每个TCP连接一个线程和一个UDP线程。