/*创建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不能够阻塞,原来的这段代码能够实现,但现在在一点没变的情况下不能阻塞了,求大神指点,不胜感激。