【发布时间】:2010-06-04 12:18:40
【问题描述】:
我有一个基于选择的服务器。套接字处于阻塞模式,但对于 select() 函数,我使用了 250 毫秒。超时。
基本上,我的服务器只接受一个客户端并向该客户端发送数据。 如果我只是将数据从服务器发送到客户端,它可以正常工作数周。
但我意识到,如果客户端在 select() 行 3-4 小时后将数据发送到服务器,则会出现堆栈溢出异常 (0xC00000FD)。 我红了几十次 Select() 的 MSDN 页面,但没有提到与此相关的内容。 我真的被困住了。任何帮助将不胜感激。
顺便在网上找了个例子;
http://tangentsoft.net/wskfaq/examples/basics/select-server.cpp
在接受客户端连接后,他将其设置为非阻塞模式。 并评论说;
// Mark the socket as non-blocking, for safety.
上面的“安全”是什么意思? 所以你认为这是我的问题吗?因为在我的实现中,连接的处于阻塞模式?
提前致谢
【问题讨论】: