服务器端UDP / Socket通信的线程模型

时间:2017-10-17 06:28:21

标签: multithreading sockets tcp udp

在服务器端,对于一个UDP套接字文件描述符(从客户端connect()接收),我必须打开一个线程来从每个客户端读取。 因此,如果我有100个客户端连接到服务器,那么有100个线程。是否有任何其他线程模型像一些线程池。 同样的问题也适用于TCP。

1 个答案:

答案 0 :(得分:1)

  

在服务器端,对于一个UDP套接字文件描述符(从客户端connect()接收),我必须打开一个线程从每个客户端读取。

不,你没有。您只需要一个线程进行阅读。如果回复需要大量时间准备,您可能需要多个回复主题。

  

因此,如果我有100个客户端连接到服务器,那么就有100个线程。

Bzzt。你没有。没有连接'在UDP中。

  

是否有其他线程模型,如某些线程池。

我当然会使用线程池来准备回复并发送回复。

  

同样的问题也适用于TCP。

完全不同的水壶鱼。你需要:

  1. 每个接受套接字的线程,可能从线程池分配,或
  2. 非阻塞多路复用NIO,可能还有一个用于准备回复的线程池,或
  3. 异步I / O。