我的Winsock编程有一点小问题,我正在尝试集成一个能够在两个客户端之间传递数据的图形界面。
基本上,按下C并执行第一段代码,然后我将得到一个“套接字错误”,这是由我在这里的第二段代码中的MsgBox给出的。
case 'C':
{
if(!Connected)
{
connect(s,(LPSOCKADDR)&me,sa_size);
break;
}
}
case WM_SOCKET:
if (WSAGETSELECTERROR(lParam))
{
cout << "Socket error\n";
WSAGetLastError();
MessageBox (hwnd,"Socket Error123","Information",MB_OK);
PostQuitMessage (0);
return 0;
}
我真的不知道该怎么解决这个问题,我一直无法找到任何关于向我目前拥有的网络代码中添加图形界面的帮助(它在没有实现图形部分的情况下工作),只是在寻找我能找到的任何帮助。
发布于 2012-12-19 22:36:50
当Connected
为true时,'C'
处理程序缺少break
/return
语句;当WSAGETSELECTERROR()
返回0时,WM_SOCKET
处理程序缺少break
/return
语句。
而且,在WM_SOCKET
中,WSAGetLastError()
是没有意义的。您必须使用WSAGETSELECTERROR()
报告的错误代码。
试试这个:
case 'C':
{
if (!Connected)
connect(s,(LPSOCKADDR)&me,sa_size);
break;
}
case WM_SOCKET:
if (WSAGETSELECTERROR(lParam))
{
std::cout << "Socket error " << WSAGETSELECTERROR(lParam) << " on Event " << WSAGETSELECTEVENT(lParam) << std::endl;
MessageBox (hwnd, TEXT("Socket Error"), TEXT("Information"), MB_OK | MB_ICONERROR);
PostQuitMessage (0);
return 0;
}
break;
https://stackoverflow.com/questions/13959446
复制相似问题