在线程服务器中调用select.select()的正确方法

时间:2013-04-10 01:58:44

标签: python multithreading python-2.7 vpn tunnel

我正在尝试编写一个VPN服务器,多个客户端可以在虚拟网络上相互连接。 所以我需要一个线程服务器来同时向/从客户端发送和接收数据。 可以为每个客户端创建一个隧道接口,代表客户端在服务器上的虚拟接口。

我有两个使用select()函数在服务器上读取/写入隧道的解决方案:

  1. 使用为所有隧道调用select([tun0,tun1,tun2],[tun0,tun1,tun2],[])函数的单个线程,并使用缓冲区来保持流量。
  2. 在特定客户端的主题上单独调用select([tun0],[tun0],[])函数。
  3. 我的问题是:哪种方式更好?

0 个答案:

没有答案