code:
LRESULT CALLBACK MainProcedure(HWND hWnd, UINT Message,WPARAM wParam, LPARAM lParam)
{
switch(Message)
{
case WM_DESTROY:
PostQuitMessage(0);
break;
case WM_ONSOCKET:
{
switch (WSAGETSELECTEVENT(lParam))
{
case FD_WRITE:
break;
case FD_READ:
WBOX(L"Package recieved");
break;
case FD_CONNECT:
break;
case FD_ACCEPT:
break;
case FD_CLOSE:
break;
}
}break;
};
return DefWindowProc(hWnd, Message, wParam, lParam);
}
void Init_Network(bool client)
{
if(WSAStartup(MAKEWORD(2,2), &Winsock) == WSAVERNOTSUPPORTED)
{
WSACleanup();
WBOX(L"Can't start winsock");
return;
}
Socket = socket(AF_INET, SOCK_STREAM, 0);
WSAAsyncSelect(Socket, GameWindow.hWnd, WM_ONSOCKET, FD_READ | FD_WRITE | FD_CONNECT | FD_ACCEPT | FD_CLOSE);
if(Socket == SOCKET_ERROR)
{
WSACleanup();
WBOX(L"Can't create socket");
return;
}
if(Client)
{
ZeroMemory(&HostAddress, sizeof(HostAddress));
HostAddress.sin_family = AF_INET;
HostAddress.sin_port = htons(27777);
HostAddress.sin_addr.s_addr = inet_addr("192.168.0.151");
connect(Socket, (sockaddr*) &HostAddress, sizeof(HostAddress));
}
else
{
ZeroMemory(&HostAddress, sizeof(HostAddress));
HostAddress.sin_family = AF_INET;
HostAddress.sin_port = htons(27777);
HostAddress.sin_addr.s_addr = htonl (INADDR_ANY);
if(bind(Socket, (sockaddr*) &HostAddress, sizeof(HostAddress)) == SOCKET_ERROR)
{
WBOX(L"Can't bind Socket");
int Error = WSAGetLastError();
WSACleanup();
return;
}
if(listen(Socket, MaxNetworkPlayers) == SOCKET_ERROR)
{
WBOX(L"Can't listen to Port");
WSACleanup();
return;
}
while(NumberOfClients < MaxNetworkPlayers)
{
ClientSockets[NumberOfClients] = accept(Socket, (sockaddr*) &ClientAddresses[NumberOfClients], &AddressSize);
NumberOfClients++;
}
}
}






