subject_24545.htm
来自「一些关于vc的问答」· HTM 代码 · 共 4 行
HTM
4 行
<p>
序号:24545 发表者:qiaofeng 发表日期:2002-12-13 16:02:06
<br>主题:有关CAsyncSocket类的问题
<br>内容:我编了个C/S程序,客户端也可连到服务器端,但不知道为什么服务器只能收到第一次发送的内容,第二次就不行,我的LISTEN函数如下:<BR>void CCSockServerDlg::OnListen() <BR>{<BR> // TODO: Add your control notification handler code here<BR> if (m_srvrSocket.m_hSocket==INVALID_SOCKET)<BR> {<BR> BOOL bFlag=m_srvrSocket.Create(1088,SOCK_STREAM,FD_ACCEPT);<BR> if (bFlag==0)<BR> {<BR> AfxMessageBox("Socket Error!0");<BR> m_srvrSocket.Close();<BR> PostQuitMessage(0);<BR> return;<BR> }<BR> else<BR> AfxMessageBox("Socket OK");<BR> }<BR> //“侦听”成功,等待连接请求<BR> if (!m_srvrSocket.Listen(1))<BR> {<BR> int nErrorCode = m_srvrSocket.GetLastError();<BR> if (nErrorCode!=WSAEWOULDBLOCK)<BR> {<BR> AfxMessageBox("Socket Error!");<BR> m_srvrSocket.Close();<BR> PostQuitMessage(0);<BR> return;<BR> }<BR> }<BR><BR>}<BR>ACCEPT函数如下:<BR>void CMyServerSocket::OnAccept(int nErrorCode) <BR>{<BR> // TODO: Add your specialized code here and/or call the base class<BR> //侦听到连接请求,调用Accept函数<BR> CNewSocket* pSocket = new CNewSocket();<BR> if (Accept(*pSocket))<BR> {<BR> AfxMessageBox("Accept");<BR> pSocket->AsyncSelect(FD_READ);<BR> m_pSocket=pSocket;<BR> }<BR> else<BR> delete pSocket;<BR><BR> //CAsyncSocket::OnAccept(nErrorCode);<BR>}<BR>RECEIVE函数如下:<BR>void CNewSocket::OnReceive(int nErrorCode) <BR>{<BR> CString shu;<BR> // TODO: Add your specialized code here and/or call the base class<BR> m_nLength=Receive(m_szBuffer,sizeof(m_szBuffer),0);<BR> CCSockServerApp* pApp=(CCSockServerApp*)AfxGetApp();<BR> CCSockServerDlg* pDlg=(CCSockServerDlg*)pApp->m_pMainWnd;<BR> shu=m_szBuffer;<BR> pDlg->m_MESSAGE.InsertString(-1,m_szBuffer);<BR> AfxMessageBox(m_szBuffer);<BR> memset(m_szBuffer,0,sizeof(m_szBuffer));<BR> // 直接转发消息<BR> AsyncSelect(FD_WRITE);<BR><BR> //CAsyncSocket::OnReceive(nErrorCode);<BR>}<BR><BR>各位大哥帮我看看怎么回事,多谢了<BR>2002-12-13 16:04:59
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?