我正在使用WINSOCK学习基本的网络编程。服务器构建并执行得很好,除了它没有通过bind()返回SOCKET_ERROR。
输出:"错误:SOCKET_ERROR(-1)"
代码:
.carousel-item.active,
.carousel-item-next,
.carousel-item-prev {
display: block;
}
答案 0 :(得分:2)
在
inet_pton(AF_INET, IP.c_str(), &(IncomingClient));
inet_pton
预计会提供IN_ADDR
,而不是SOCKADDR_IN
。 SOCKADDR_IN
包含IN_ADDR
,因此OP需要稍微改变调用以提供指向sin_addr
成员的指针:
inet_pton(AF_INET, IP.c_str(), &(IncomingClient.sin_addr));
然后他们需要解决一些其他问题,例如return true;
末尾缺少ListenForConnection
,错位的括号
This bracket here V
if (bind(NewConnection, (LPSOCKADDR)&IncomingClient, sizeof(IncomingClient) == SOCKET_ERROR))
should be here ^
而不检查
的返回码listen(NewConnection, SOMAXCONN);
他们应该好好去。