rendered paste bodyint net_init(){ int error;#if defined(WINDOWS) || defined(_WIN32) WSADATA wsaData; WORD version; version = MAKEWORD(2,0); if (WSAStartup(version, &wsaData) != 0) return 1; if (LOBYTE( wsaData.wVersion ) != 2 || HIBYTE( wsaData.wVersion ) != 0) { WSACleanup(); return 2; } net_memory_counter = 0; if (NET_DEBUG) printf("net_init: done.\r\n"); return 0;#else //TODO: Unix Sockets shit here.. return 1;#endif}SOCKET net_start_server(int port){ net_server = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if (net_server == INVALID_SOCKET) { printf("net_start_server: %ld.\n", WSAGetLastError()); return 0; } _sin.sin_family = AF_INET; _sin.sin_addr.s_addr = inet_addr("0.0.0.0"); _sin.sin_port = htons(port); if (bind(net_server, (SOCKADDR *)&_sin, sizeof(_sin)) == SOCKET_ERROR) { if (NET_DEBUG) printf("net_start_server: bind() failed on port %d!\r\n", port); closesocket(net_server); return 0; } if (listen(net_server, NET_MAX_CLIENTS) == SOCKET_ERROR) { if (NET_DEBUG) printf("net_start_server: listen()failed! %ld.\r\n", WSAGetLastError()); return 0; } if (NET_DEBUG) printf("net_start_server: done, listening on port %d.\r\n", port); return net_server;}void net_stop_server(){ closesocket(net_server);}SOCKET net_connect(char *host, int port){ struct sockaddr_in addr; struct hostent *h; SOCKET s; if ((s = socket(AF_INET, SOCK_STREAM, 0)) == INVALID_SOCKET) return 0; addr.sin_family = AF_INET; addr.sin_port = htons(port); if ((h = gethostbyname(host)) == NULL) return 0; addr.sin_addr.s_addr= *((unsigned long *)h->h_addr); if ((connect(s, (struct sockaddr *)&addr, sizeof(addr))) != 0) return 0; if (NET_DEBUG) printf("net_connect: connected to %s:%d.\r\n", host, port); return s;}void net_disconnect(SOCKET s){ closesocket(s); if (NET_DEBUG) printf("net_disconnect: done.\r\n");}SOCKET net_accept(){ SOCKET s; if ((s = accept(net_server, NULL, NULL)) == INVALID_SOCKET) { if (NET_DEBUG) printf("net_accept: accept() failed! %ld.\r\n", WSAGetLastError()); return 0; } if (NET_DEBUG) printf("net_accept: done.\r\n"); return s;}int net_die(){ net_stop_server();#if defined(WINDOWS) || defined(_WIN32) WSACleanup(); if (NET_DEBUG) printf("net_die: done.\r\n");#else //TODO: Unix Sockets cleanup stuff here..#endif return 0;}