我要在一个服务器---多客户端应用程序中,在通信过程中为每一个客户端都开一个线程,但是客户的数量是
随即的,也就是 DWORD WINAPI ThreadRecv(LPVOID lpParam)的定义应该是动态的,每一个客服端的功能都一样,应该怎样实现呢!也就是每个用户要使用的代码都相同,但属于不同的线程,应该怎样解觉呢!我刚学VC,很菜,请帮忙!
随即的,也就是 DWORD WINAPI ThreadRecv(LPVOID lpParam)的定义应该是动态的,每一个客服端的功能都一样,应该怎样实现呢!也就是每个用户要使用的代码都相同,但属于不同的线程,应该怎样解觉呢!我刚学VC,很菜,请帮忙!
解决方案 »
- LIstcontrol控件问题
- FTP上的视频通过socket连接下载的byte数组,如何可以直接播放
- 我修改了消息映射响应的函数,居然非法操作了
- 如果一个线程把自己的 HANDLE 给 Close 掉了会有什么后果?
- 关于CHttpConnection问题,请大家指点
- 100分请教
- 请问哪本书对用WIN32的API和控件来设计界面讲得比较全和详细?
- vc++开发环境
- 如何在一个基于对话框的程序里添加视图类,文档类,和框架类,谢谢~
- mfc 对话框能播放背景透明的flash吗?
- 自己写的浏览器作为默认浏览器后,双击htm文件,windows总报告找不到文件?
- warning C4551: function call missing argument list
王艳平有这样的例子
书上有代码
{//TCP监听线程
CBackupClientDlg *pDlg=(CBackupClientDlg *)lparam;
if(pDlg->StopServer==true) return -1;
CSocket sockSrvr;
pDlg->m_Potr=PORT+pDlg->m_server;
int createSucceed=sockSrvr.Create(pDlg->m_Potr);
if(createSucceed==0)
{
AfxMessageBox("_ListenTcpThread Create错误!"+pDlg->GetError(GetLastError()));
return -1;
}
int listenSucceed=sockSrvr.Listen();//本机指定端口监听网络事件
if(listenSucceed==0)
{
AfxMessageBox("_ListenTcpThread Listen错误!"+pDlg->GetError(GetLastError()));
return -1;
}
CSocket recSo;
SOCKADDR_IN client;
int iAddrSize=sizeof(client);
//监听到网络事件交给接收线程处理,监听线程继续监听消息
int acceptSucceed=sockSrvr.Accept(recSo,(SOCKADDR *)&client,&iAddrSize);
if(acceptSucceed==0)
{
AfxMessageBox("_ListenTcpThread Accept错误!"+pDlg->GetError(GetLastError()));
return -1;
}
sockSrvr.Close();
char flag[FLAG]={0};
if(recSo.Receive(flag,FLAG)!=2)
{
return -1;
}
pDlg->m_type=flag[0];
if(pDlg->m_type=='D') return 0;
pThreadLisen=::AfxBeginThread(_ListenTcpThread,pDlg);
pDlg->ReceiveFileMsg(recSo,client);//接收线程
//接收函数定义如下: ReceiveFileMsg(CSocket &recSo,SOCKADDR_IN &client)
//可以再ReceiveFileMsg函数里创建执行线程。
return 0;
}
yestotofu:客户端少 该怎么弄?
IOCP不知道呀!