sock问题~~~~~~~~~请进!!!!!!! 有子线程?你没关第一个sock巴 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 to supperlxf你的意思就是要把两个sock都关掉吗? 可是我现在就是要关第一个啊.我在ONRECEIVE中关不掉它啊.只要一关就出错. 原码是这样的:void CReceiveSocket::OnReceive(int nErrorCode) { // TODO: Add your specialized code here and/or call the base class ((CMonitorServerApp*)::AfxGetApp())->BeginThread (this); CAsyncSocket::OnReceive(nErrorCode);}UINT SerOnReceive(LPVOID lparam);void CMonitorServerApp::BeginThread(CReceiveSocket *m_ClientSocket){ m_ClientSocket->AsyncSelect(0); m_ClientSocket->AsyncSelect(FD_CLOSE); CWinThread* tempThread = AfxBeginThread((AFX_THREADPROC)SerOnReceive,(LPVOID)m_ClientSocket, THREAD_PRIORITY_NORMAL,0,0,NULL); if (tempThread) { tempThread->m_bAutoDelete=true; } else m_ClientSocket->Close();}UINT SerOnReceive(LPVOID lparam){ CReceiveSocket * pSocket=(CReceiveSocket*)lparam; CMonitorServerDlg* pDlg=(CMonitorServerDlg*)AfxGetApp()->m_pMainWnd; int nReceived;CString flnmsz; nReceived=pSocket->Receive(flnmsz.GetBuffer(50),50,0); flnmsz.ReleaseBuffer(nReceived); while(flnmsz.Find('#')>=0) flnmsz=flnmsz.Right(flnmsz.GetLength()-flnmsz.Find('#')-1); if(flnmsz=="close") {// pDlg->m_sConnectSocket.AsyncSelect (0); // pDlg->m_sConnectSocket.AsyncSelect(FD_CLOSE);//上面两步出错 exit(0); } return 1; } 请问ONWRITE在哪儿调用呢?我的原码在上面 to supperlxf:可是我怎么都找不到ONWRITE啊. vs2010 mfc添加图片控件 只想用direct show 捕捉视频帧 统计字符串中某字符出现次数 tchar 转换为 char 困惑我的一个问题:发送一个虚假ip的ip包,能够接收到吗? 一个浮点数,如何赋给一个字节? DLL DEBUG&RELEASE 请问如何在对话框,多添加一个按扭(现已有ok和cancle),也能象OK或CANCLE一样...... 请教:VC6下,响应Com组件回调函数的问题 如何改变类型? 小弟近日用mfc开发socket网络通讯,资料奇缺,又找不到什么好书,请各位大虾提点意见! 如何使窗体的最大化按钮失效?如何使窗体不能被任意更改尺寸?
你的意思就是要把两个sock都关掉吗?
我在ONRECEIVE中关不掉它啊.
只要一关就出错.
void CReceiveSocket::OnReceive(int nErrorCode)
{
// TODO: Add your specialized code here and/or call the base class
((CMonitorServerApp*)::AfxGetApp())->BeginThread (this);
CAsyncSocket::OnReceive(nErrorCode);
}
UINT SerOnReceive(LPVOID lparam);
void CMonitorServerApp::BeginThread(CReceiveSocket *m_ClientSocket)
{
m_ClientSocket->AsyncSelect(0);
m_ClientSocket->AsyncSelect(FD_CLOSE);
CWinThread* tempThread = AfxBeginThread((AFX_THREADPROC)SerOnReceive,(LPVOID)m_ClientSocket,
THREAD_PRIORITY_NORMAL,0,0,NULL);
if (tempThread)
{
tempThread->m_bAutoDelete=true;
}
else
m_ClientSocket->Close();
}
UINT SerOnReceive(LPVOID lparam)
{
CReceiveSocket * pSocket=(CReceiveSocket*)lparam;
CMonitorServerDlg* pDlg=(CMonitorServerDlg*)AfxGetApp()->m_pMainWnd;
int nReceived;CString flnmsz;
nReceived=pSocket->Receive(flnmsz.GetBuffer(50),50,0);
flnmsz.ReleaseBuffer(nReceived);
while(flnmsz.Find('#')>=0) flnmsz=flnmsz.Right(flnmsz.GetLength()-flnmsz.Find('#')-1);
if(flnmsz=="close")
{
// pDlg->m_sConnectSocket.AsyncSelect (0);
// pDlg->m_sConnectSocket.AsyncSelect(FD_CLOSE);//上面两步出错 exit(0);
}
return 1;
}
我的原码在上面
可是我怎么都找不到ONWRITE啊.