UINT AcceptThread(LPVOID lpParam)
{
CVSMNETDlg* dlg=(CVSMNETDlg*)lpParam;
CSocket sockTemp;
while(1)
{
CString str,str1;
sockTemp.Create(4040);
sockTemp.Listen();
bRead=FALSE;
sockTemp.Accept(dlg->m_sockSend);
AfxBeginThread(SendDataThread,(void*)dlg);
}
sockTemp.Close();
return 0;
}
创建了一个线程用于等待客户端连接,在客户端连接之后再开一个线程,负责发送数据。
有一个成员变量 CSocket m_sockSend,在发送数据线程里,我应该怎样创建一个新的CSocket来负责发送呢?
因为要是有新的连接上来,m_sockSend的就会发生改变。
{
CVSMNETDlg* dlg=(CVSMNETDlg*)lpParam;
CSocket sockTemp;
while(1)
{
CString str,str1;
sockTemp.Create(4040);
sockTemp.Listen();
bRead=FALSE;
sockTemp.Accept(dlg->m_sockSend);
AfxBeginThread(SendDataThread,(void*)dlg);
}
sockTemp.Close();
return 0;
}
创建了一个线程用于等待客户端连接,在客户端连接之后再开一个线程,负责发送数据。
有一个成员变量 CSocket m_sockSend,在发送数据线程里,我应该怎样创建一个新的CSocket来负责发送呢?
因为要是有新的连接上来,m_sockSend的就会发生改变。
解决方案 »
- vsprops 如何打开,我如何编译这样的项目工程。
- 怎么求一个字符串的字符的个数
- 一个多线程问题
- 如何无条件强制杀死一个进程?
- 关于拦截文件操作的API的钩子程序求教:qq:55020921(再问)
- 菜鸟又来送100分,我在窗体上放了一button和一个PROGRESS控件,我想点击一下button,progress控件里就走一格,怎么才能做到啊?
- 在线等待,DCOM服务端如何得到调用端的机器名或IP地址
- 使用DAO访问数据库过程中,SQL语句的问题
- nurbs曲面的数值计算
- type safe 到底是什么意思?
- 属性页编程的一个疑问
- dll钩子问题——LoadLibrary FreeLibrary问题
http://download.csdn.net/detail/geoff08zhang/4571358
{
CVSMNETDlg* dlg=(CVSMNETDlg*)lpParam;
CSocket sockTemp;
//建立连接,发送车底照片
while(1)
{
CString str,str1;
sockTemp.Create(4040);
sockTemp.Listen();
sockTemp.Accept(dlg->m_sockSend[dlg->NumOfSock]);
AfxBeginThread(SendDataThread,(void*)dlg);
}
sockTemp.Close();
return 0;
}//发送图片线程
UINT SendDataThread(LPVOID lpParam)
{
CVSMNETDlg* dlg=(CVSMNETDlg*)lpParam;
int i=dlg->NumOfSock;
dlg->NumOfSock++;
while(1)
{
EventObj.Lock();
BOOL bSend;
while(bOpen)
{
Sleep(500);
}
bOpen=TRUE;
bSend=dlg->SendJPG(dlg->m_jpgCD,&(dlg->m_sockSend[dlg->NumOfSock]));
while(!bSend)
{
bSend=dlg->SendJPG(dlg->m_jpgCD,&(dlg->m_sockSend[dlg->NumOfSock]));
} bSend=dlg->SendJPG(dlg->m_jpgCS,&(dlg->m_sockSend[dlg->NumOfSock]));
while(!bSend)
{
bSend=dlg->SendJPG(dlg->m_jpgCS,&(dlg->m_sockSend[dlg->NumOfSock]));
} bSend=dlg->SendJPG(dlg->m_jpgCP,&(dlg->m_sockSend[dlg->NumOfSock]));
while(!bSend)
{
bSend=dlg->SendJPG(dlg->m_jpgCP,&(dlg->m_sockSend[dlg->NumOfSock]));
}
bOpen=FALSE;
dlg->SetDlgItemText(IDC_STATIC3,"等待消息...");
}
dlg->m_sockSend[dlg->NumOfSock].Close();
}改成这样了,调试的时候,运行到bSend=dlg->SendJPG(dlg->m_jpgCD,&(dlg->m_sockSend[dlg->NumOfSock]))会报错
http://blog.csdn.net/robertbaker/article/details/8557124