我正在编写一个支持最多1000个客户端的套接字服务器,这个服务器是为了我的游戏而设计的。我使用非阻塞套接字和大约10个线程同时从不同的套接字接收数据(第一个线程从0-100接收,第二个从101-200接收,以此类推...)。
但是如果第一个线程想要向所有1000个客户端发送数据,而第二个线程也想在同一时间向所有1000个客户端发送数据,这样安全吗?有没有可能导致数据在客户端那边出现混乱?
如果是,我猜唯一可能发生的问题就是有时客户端会将2或10个数据包看作一个数据包,对吗?如果是的话,是否有任何解决方案呢 :(
但是如果第一个线程想要向所有1000个客户端发送数据,而第二个线程也想在同一时间向所有1000个客户端发送数据,这样安全吗?有没有可能导致数据在客户端那边出现混乱?
如果是,我猜唯一可能发生的问题就是有时客户端会将2或10个数据包看作一个数据包,对吗?如果是的话,是否有任何解决方案呢 :(
select()
的东西可能是更好的选择,并且可以减少复杂性。事实上,它甚至可能更快。 - ereOn