⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subject_14367.htm

📁 一些关于vc的问答
💻 HTM
字号:
<p>
序号:14367 发表者:asd 发表日期:2002-09-06 11:12:17
<br>主题:求 WINSOCK的一个问题?
<br>内容:&nbsp;&nbsp; 我现在采用服务器端监听,客户端进行连接,但服务端程序没开时,客户端出现受阻现象。<BR>&nbsp;&nbsp; 请问如何解决winsock在受阻后,导致的界面被停滞现象?<BR>&nbsp;&nbsp; 1.我采用了多线程来,但程序不允许在线程中对winsock进行连接。<BR>&nbsp;&nbsp; 2.采用受阻返回,重载了winsock的OnMessagePending()函数,代码如下:<BR>&nbsp;&nbsp;&nbsp;&nbsp; void CMySocket::OnMessagePending ()<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (this-&gt;IsBlocking()) <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this-&gt;CancelBlockingCall();<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;但是,当网络正常,仍然出现连接不上的情况,请教高手,这个问题如何解决?<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>内容:&nbsp;&nbsp;<BR>具体如何操作?<BR><BR>我目前使用了超时处理,但界面同样有停滞现象,也不知道该设置是否启用!<BR><BR>CSocket *m_pSocket = new CSocket;<BR>m_pSocket-&gt;Create();<BR>timeval timeout = {0, 10};//10为连接超时的时长(毫秒)<BR>fd_set fds;<BR>FD_ZERO(&fds);<BR>FD_SET(m_pSocket-&gt;m_hSocket, &fds);<BR>select(0, &fds, NULL, NULL, &timeout);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BOOL ret = m_pSocket-&gt;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-&gt;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>&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp; timeout的真正含义是什么?<BR>&nbsp;&nbsp;&nbsp;&nbsp;是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 + -