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

📄 subject_24977.htm

📁 一些关于vc的问答
💻 HTM
字号:
<p>
序号:24977 发表者:111 发表日期:2002-12-18 11:10:35
<br>主题:用过WSAAsyncSelect的请指教
<br>内容:client端主动connect server端。<BR>client端如何用FD_READ读server端的send数据。<BR><BR>以下是我的程序,只能收到FD_CLOSE消息,怎么也不能FD_READ。高手请指点!多谢!!!<BR>client程序:<BR>SOCKET local_sock,server_sock;<BR><BR>void ConnectServer()<BR>{<BR>int sizesock=sizeof(struct sockaddr_in);<BR>struct sockaddr_in sin;<BR>local_sock = socket(AF_INET,SOCK_STREAM,0);<BR>if(local_sock == INVALID_SOCKET)&nbsp;&nbsp;return;<BR>sin.sin_family=AF_INET;<BR>sin.sin_addr.s_addr=g_serverip;<BR>sin.sin_port=htons(CONNECT_PORT);<BR>server_sock=connect (local_sock, (struct sockaddr*)&amp;sin, sizeof (sin));<BR>if(server_sock== SOCKET_ERROR)<BR>{<BR>closesocket (local_sock);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return;<BR>}<BR>if(WSAAsyncSelect(local_sock,MyWindow-&gt;m_hWnd,VTM_DATAREADY,FD_READ|FD_CLOSE)==SOCKET_ERROR)<BR>{<BR>&nbsp;&nbsp;closesocket (local_sock);<BR>&nbsp;&nbsp; return;<BR> }<BR>}<BR>void CCMainWnd::OnVTReadData(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL&amp; bHandled)<BR>{<BR>char buf[10];<BR>switch(LOWORD(lParam))<BR>{<BR>case FD_CLOSE:<BR>&nbsp;&nbsp;&nbsp;&nbsp;closesocket (local_sock);<BR>&nbsp;&nbsp;&nbsp;&nbsp;break;<BR>case FD_READ:<BR>&nbsp;&nbsp;&nbsp;&nbsp;recv(local_sock,buf,1,1);<BR>&nbsp;&nbsp;&nbsp;&nbsp;break;<BR>}<BR>}<BR><BR>server端程序:<BR>void CWyjserverDlg::OnButton1() <BR>{<BR>int ret,sizesock=sizeof(struct sockaddr_in);<BR>WSADATA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; wsd;<BR>struct sockaddr_in&nbsp;&nbsp;local;<BR>struct sockaddr remote;<BR>SOCKET&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sockM,new_fd;<BR>struct in_addr;&nbsp;&nbsp;<BR>if (WSAStartup(MAKEWORD(1, 1), &amp;wsd) != 0)&nbsp;&nbsp;&nbsp;&nbsp;return;<BR>if ((sockM = socket(AF_INET, SOCK_STREAM, 0)) == INVALID_SOCKET){WSACleanup();return;}<BR>local.sin_family&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= AF_INET;<BR>local.sin_port&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= htons(CONNECT_PORT);<BR>local.sin_addr.s_addr =htonl(INADDR_ANY);<BR>if(bind(sockM,(struct sockaddr * ) &amp;local,sizeof(struct sockaddr))==SOCKET_ERROR){closesocket(sockM);WSACleanup();return;}<BR>if(listen(sockM,10)==SOCKET_ERROR){closesocket(sockM);WSACleanup();return;}<BR>new_fd=accept(sockM,&amp;remote,(int *)&amp;sizesock);<BR>ret=send(new_fd,"1",1,1);<BR>}
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:中国娃娃 回复日期:2002-12-18 12:07:17
<br>内容:void CCMainWnd::OnVTReadData(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL&amp; bHandled)<BR>是什么东东?声明是怎么样的?在MESSAGEMAP宏里是怎么样的?
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:111 回复日期:2002-12-18 12:32:09
<br>内容:能收到FD_CLOSE消息,宏是正确的,VTM_DATAREADY对应的消息处理是OnVTReadData
<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-12-18 12:50:25
<br>内容:宏的形式是什么样的?ON_MESSAGE(VTM_DATAREADY, OnVTReadData)还是别的?
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:111 回复日期:2002-12-18 13:00:52
<br>内容:我的程序是COM程序,不是MFC的APP那种,定义是:<BR>MESSAGE_HANDLER(VTM_DATAREADY, OnVTReadData)<BR>肯定没错,因为FD_CLOSE执行了!<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>
回复者:111 回复日期:2002-12-18 13:03:57
<br>内容:朋友,能用QQ聊吗?<BR>我的QQ:19082900
<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 + -