回来了(对不起)C++套接字不能正常工作
我创建了一个插座C++应用程序,但它不能正常工作。
这是我的第一个代码:
void Network::Start()
{
this->socket = Env::GetSocket();
SOCKADDR_IN sInformation;
sInformation.sin_family = AF_INET;
sInformation.sin_addr.s_addr = INADDR_ANY;
sInformation.sin_port = htons(30000);
bind(this->socket, (SOCKADDR*) (&sInformation), sizeof(sInformation));
listen(this->socket, 10);
while (true)
{
this->DO();
}
}
和DO功能:
void Network::DO()
{
SOCKET s = SOCKET_ERROR;
sockaddr_in sock_addr;
accept(s, (sockaddr*) &sock_addr, NULL);
if (INVALID_SOCKET == s)
{
return;
}
else
{
cout << "Received connection from " << inet_ntoa(sock_addr.sin_addr);
}
}
会发生什么事,总是(即使我连接)S的值INVALID_SOCKET。我通过.SWF连接,但不接受我的连接。我究竟做错了什么?
你需要做的'S =接受(这个 - >插座...' – ctn
@ctn你应该张贴,作为一个答案 – Barmar
接受并返回一个整数,而不是一个套接字对象 –