检测连接请求而不循环

时间:2011-01-25 10:33:20

标签: c++ sockets loops callback sdl

我需要实现某种服务器,它首先等待用户连接。我使用C ++和SDL_Net,我的代码当前在循环中检查套接字活动。问题是消耗了大量的CPU性能实际上什么也没做,所以我想知道是否有办法检测连接请求/套接字活动与事件或某种回调注册?我不怕WinAPI所以任何解决方案都是受欢迎的。 提前谢谢你,

文森特

2 个答案:

答案 0 :(得分:2)

您可以使用SDLNet_SocketSet,创建一个,然后查看SDLNet_CheckSocketsSDLNet_SocketReady

答案 1 :(得分:1)

您使用的是哪种套接字API? Winsock的?如果是这样,您需要在套接字上调用listen()以等待传入连接。此调用将阻止调用线程,因此在等待时不会使用CPU时间。

有关详细信息,请参阅http://msdn.microsoft.com/en-us/library/ms738545(v=vs.85).aspx