首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Winsock编程- WsaGetSelectError,

Winsock编程- WsaGetSelectError,
EN

Stack Overflow用户
提问于 2012-12-20 03:12:06
回答 1查看 710关注 0票数 0

我的Winsock编程有一点小问题,我正在尝试集成一个能够在两个客户端之间传递数据的图形界面。

基本上,按下C并执行第一段代码,然后我将得到一个“套接字错误”,这是由我在这里的第二段代码中的MsgBox给出的。

代码语言:javascript
代码运行次数:0
运行
复制
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;
    }

我真的不知道该怎么解决这个问题,我一直无法找到任何关于向我目前拥有的网络代码中添加图形界面的帮助(它在没有实现图形部分的情况下工作),只是在寻找我能找到的任何帮助。

EN

回答 1

Stack Overflow用户

发布于 2012-12-20 06:36:50

Connected为true时,'C'处理程序缺少break/return语句;当WSAGETSELECTERROR()返回0时,WM_SOCKET处理程序缺少break/return语句。

而且,在WM_SOCKET中,WSAGetLastError()是没有意义的。您必须使用WSAGETSELECTERROR()报告的错误代码。

试试这个:

代码语言:javascript
代码运行次数:0
运行
复制
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;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13959446

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档