📄 subject_14367.htm
字号:
<p>
序号:14367 发表者:asd 发表日期:2002-09-06 11:12:17
<br>主题:求 WINSOCK的一个问题?
<br>内容: 我现在采用服务器端监听,客户端进行连接,但服务端程序没开时,客户端出现受阻现象。<BR> 请问如何解决winsock在受阻后,导致的界面被停滞现象?<BR> 1.我采用了多线程来,但程序不允许在线程中对winsock进行连接。<BR> 2.采用受阻返回,重载了winsock的OnMessagePending()函数,代码如下:<BR> void CMySocket::OnMessagePending ()<BR> {<BR> if (this->IsBlocking()) <BR> this->CancelBlockingCall();<BR> }<BR> 但是,当网络正常,仍然出现连接不上的情况,请教高手,这个问题如何解决?<BR>
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:Wang Tao 回复日期:2002-09-11 13:08:45
<br>内容:用非阻塞的AsyncSocket吧
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:liuyt 回复日期:2002-09-11 13:28:18
<br>内容:你使用的socket采用了同步IO方式,因此会程序受阻。你可使用异步IO方式解决。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:唐老鸭 回复日期:2002-09-11 14:42:53
<br>内容: <BR>具体如何操作?<BR><BR>我目前使用了超时处理,但界面同样有停滞现象,也不知道该设置是否启用!<BR><BR>CSocket *m_pSocket = new CSocket;<BR>m_pSocket->Create();<BR>timeval timeout = {0, 10};//10为连接超时的时长(毫秒)<BR>fd_set fds;<BR>FD_ZERO(&fds);<BR>FD_SET(m_pSocket->m_hSocket, &fds);<BR>select(0, &fds, NULL, NULL, &timeout);<BR> BOOL ret = m_pSocket->Connect("192.168.0.1", 3310);<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:liuyt 回复日期:2002-09-11 19:32:23
<br>内容:你应该用CCAsyncSocket类,Create()后,调用IOCtl()成员函数,指定套接字为非锁定模式。<BR>可如下调用:<BR>DWORD ul = 1;<BR>m_pSocket->IOCtl(FIONBIO,&ul);
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:唐老鸭 回复日期:2002-09-12 15:43:05
<br>内容:谢谢,办法可行,但仍有一点疑问,<BR> <BR> timeout的真正含义是什么?<BR> 是Socket连接不通时,当达到该时间时才退出进程?
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -