标题:accept函数为什么不阻塞
只看楼主
kgwuliujin
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2013-4-22
结帖率:0
 问题点数:0 回复次数:3 
accept函数为什么不阻塞
程序代码:
// sockSvr.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <WINSOCK2.H>
#pragma comment(lib,"ws2_32.lib")
//TCP服务器
void TCPServer()
{
    SOCKET hSockSvr = socket(AF_INET,SOCK_STREAM,0);
    SOCKADDR_IN addrSvr = {0};
    addrSvr.sin_family = AF_INET;
    addrSvr.sin_port = htons(5678);
    addrSvr.sin_addr.S_un.S_addr = INADDR_ANY;
    bind(hSockSvr,(SOCKADDR*)&addrSvr,sizeof(addrSvr));
    listen(hSockSvr,5);

    SOCKADDR_IN addClient = {0};
    int nLen = sizeof(addClient);
    SOCKET hSockClient = accept(hSockSvr,
        (SOCKADDR*)&addClient,&nLen);
    //数据收发
    char szRecv[100] = {0};
    recv(hSockClient,szRecv,100,0);
    printf("Client Data:%s\n",szRecv);
    //关闭套接字
    closesocket(hSockClient);
    closesocket(hSockSvr);
}
int main(int argc, char* argv[])
{
    //初始化socket库
    WSADATA ws = {0};
    WSAStartup(MAKEWORD(2,2),&ws);

    TCPServer();
    
    return 0;
}

搜索更多相关主题的帖子: comment include 服务器 listen 
2013-11-05 10:56
青春无限
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江苏
等 级:贵宾
威 望:24
帖 子:3450
专家分:19340
注 册:2012-3-31
得分:0 
看看!

学 会看代码…学习写程序…学会搞开发…我的目标!呵呵是不是说大话啊!!一切皆可能
2013-11-06 17:20
又一轮明月
Rank: 2
等 级:论坛游民
帖 子:13
专家分:50
注 册:2013-10-31
得分:0 
我只是大胆说出我的想法,你初始化socket是,用的是socket—stream,
2013-11-24 16:21
IceSource
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:37
专家分:139
注 册:2013-12-3
得分:0 
以下是引用kgwuliujin在2013-11-5 10:56:44的发言:


    addrSvr.sin_port = htons(5678);
端口号冲突,换一个端口号。比如5679
2013-12-03 16:35



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-423071-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.118811 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved