客户端发来连接请求,服务器端没有显示“请求已连接”,但是客户端显示了连接成功~这是为什么?
DWORD m;//线程退出代码 timeval tv;
tv.tv_sec=0;
tv.tv_usec=0;
fd_set fdread;
FD_ZERO(&fdread);
FD_SET(sListen,&fdread); while (1)
{ GetExitCodeThread(handle,&m);//退出码
if (CutListenThread==1)//通过外部全局变量控制线程退出
{
AfxMessageBox("监听线程终止");
::ExitThread(m);
//break;
}
int len = sizeof(cli);
select(0,&fdread,NULL,NULL,&tv);
if (FD_ISSET(sListen,&fdread))
{
sAccept = accept(sListen,(struct sockaddr* )&cli,&len);
if (sAccept==INVALID_SOCKET)
{
int error5 = WSAGetLastError();
CString error5_str5;
error5_str5.Format("%d",error5);
AfxMessageBox("接受连接错误,错误代码:"+error5_str5); return 1; }
AfxMessageBox("请求已连接"); CreateThread(NULL,0,DataThread,(LPVOID)sAccept,0,NULL);
}
Sleep(100);
}
return 0;
}
DWORD m;//线程退出代码 timeval tv;
tv.tv_sec=0;
tv.tv_usec=0;
fd_set fdread;
FD_ZERO(&fdread);
FD_SET(sListen,&fdread); while (1)
{ GetExitCodeThread(handle,&m);//退出码
if (CutListenThread==1)//通过外部全局变量控制线程退出
{
AfxMessageBox("监听线程终止");
::ExitThread(m);
//break;
}
int len = sizeof(cli);
select(0,&fdread,NULL,NULL,&tv);
if (FD_ISSET(sListen,&fdread))
{
sAccept = accept(sListen,(struct sockaddr* )&cli,&len);
if (sAccept==INVALID_SOCKET)
{
int error5 = WSAGetLastError();
CString error5_str5;
error5_str5.Format("%d",error5);
AfxMessageBox("接受连接错误,错误代码:"+error5_str5); return 1; }
AfxMessageBox("请求已连接"); CreateThread(NULL,0,DataThread,(LPVOID)sAccept,0,NULL);
}
Sleep(100);
}
return 0;
}
解决方案 »
- MFC CDHtmlDialog里如何捕获IE ErrorCode代码(NavigateError)
- 非常奇怪的网络传输问题,发送完无法立即收到...大家者进来看看吧
- 内存也能共享吗?~~~分不够还能加
- 如何在WORD文档中实现盖章已经验证公章的真伪
- 如何从数据源中提取出用户名和密码以及描述信息?
- !!高分求解!! 16进制问题 ??我在线期盼
- 我要做一个流程设计器,一个图形化的流程设计器,有哪位大虾有这方面的经验
- 课程设计,向各位大神求程序。谢谢!
- 本人想用select建立单线程多连接 服务器 求例
- 如何把openGL里面绘制三维模型在3Dmax显示
- 向线程中的非模态对话框发送消息
- 问一个有难度的问题:比如说,在内网中有一个机器的socket server是192.168.0.4:5000通过路由器联到外。。。。谢谢高手
err = select(0,&fdread,NULL,NULL,&tv);
if ( err < 1 )
{
continue;
}
//服务器端地址
sockaddr_in serveraddr; UpdateData(TRUE);
serveraddr.sin_family=AF_INET;
serveraddr.sin_port=htons(m_port);
serveraddr.sin_addr.S_un.S_addr=inet_addr(m_IP); if(connect(m_client,(sockaddr*)&serveraddr,sizeof(serveraddr))!=0){
int i = WSAGetLastError();
MessageBox("连接失败");
return;
}
else
MessageBox("连接成功");