yanghuiysz 2017-03-28 15:01 采纳率: 0%
浏览 1762
已结题

c++socket accept问题

 /*创建socket*/
void CreateServer(SOCKET &Socket, SOCKET &serverocket, char* ipaddress, int port){
    //初始化 DLL
    WSADATA wsaData;
    WSAStartup(MAKEWORD(2, 2), &wsaData);
    if (serverocket == NULL){

        Socket = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
        //绑定套接字
        sockaddr_in sockAddr;
        memset(&sockAddr, 0, sizeof(sockAddr));  //每个字节都用0填充
        sockAddr.sin_family = PF_INET;  //使用IPv4地址
        sockAddr.sin_addr.s_addr = inet_addr(ipaddress);  //具体的IP地址
        sockAddr.sin_port = htons((short)port);  //端口
        bind(Socket, (SOCKADDR*)&sockAddr, sizeof(SOCKADDR));
        //进入监听状态
        listen(Socket, 20);
        SOCKADDR clntAddr;
        int nSize = sizeof(SOCKADDR);
        cout << "Wait connection" << endl;

        serverocket = accept(Socket, (SOCKADDR*)&clntAddr, &nSize);
    }
}

不知道为什么accept不能够阻塞,原来的这段代码能够实现,但现在在一点没变的情况下不能阻塞了,求大神指点,不胜感激。

  • 写回答

1条回答 默认 最新

  • yangbo50304 2017-03-29 07:14
    关注

    返回的是如果是INVALID_SOCKET, 调用下WSAGetLastError看啥错误

    评论

报告相同问题?

悬赏问题

  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 LiBeAs的带隙等于0.997eV,计算阴离子的N和P
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 来真人,不要ai!matlab有关常微分方程的问题求解决,
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算