M
#include <Winsock2.h>
#include <Windows.h>
#include <ws2tcpip.h>
#include <iphlpapi.h>
#include <conio.h>
#include <iostream>
using namespace std;
#define DEF_PORT "24837"
int main (const int argc, const char** argv)
{
WSAData wsa;
if (::WSAStartup(MAKEWORD(2,0), &wsa) != 0)
return -11;
addrinfo *pRes = NULL;
addrinfo Hints;
::memset(&Hints, 0, sizeof(addrinfo));
Hints.ai_family = AF_INET;
Hints.ai_socktype = SOCK_STREAM;
Hints.ai_protocol = IPPROTO_TCP;
Hints.ai_flags = AI_PASSIVE;
int iRet = 0;
if (iRet = ::getaddrinfo(NULL, DEF_PORT,
&Hints, &pRes) != 0)
return -1;
SOCKET Accept = INVALID_SOCKET;
if ((Accept = ::socket(pRes->ai_family,
pRes->ai_socktype, pRes->ai_protocol)) == INVALID_SOCKET)
return -2;
if (::bind(Accept, pRes->ai_addr,
static_cast<int>(pRes->ai_addrlen)) != 0)
{
::closesocket(Accept);
return -3;
}
::freeaddrinfo(pRes);
SOCKET Client = INVALID_SOCKET;
while (_getch() != 27)
{
cout << "Start \"listen()\"\n";
if ((iRet = ::listen(Accept, 10)) != 0)
{
cerr << "Error: \"listen()\" -> " << iRet << "\n";
break;
}
if ((Client = ::accept(Accept, NULL, NULL)) == INVALID_SOCKET)
{
cerr << "Error: \"accept()\" -> INVALID_SOCKET\n";
break;
}
cout << "Client verbunden.\n";
}
system("Pause");
::closesocket(Accept);
::WSACleanup();
return 0;
}
So jetzt aber. Jetzt blockiert er auch ganz normal im Lauschzustand. Versteh ich nicht.