// // Simple Win32 net functions. // #include SOCKET sock; void NetOpen (char *addr, short port) { struct sockaddr_in sin; WSADATA WSAData; int n; static once = 1; WSAStartup(MAKEWORD(1,1), &WSAData); if (once) { fprintf(stderr, "** Connecting to %s (port %d)\n", addr, port); once = 0; } sock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP); if (sock < 0) { fprintf(stderr, "socket failed (%ld)\n", h_errno); exit(1); } memset((char *)&sin, 0x0, sizeof sin); sin.sin_family = AF_INET; sin.sin_addr.s_addr = inet_addr(addr); sin.sin_port = htons(port); n = connect(sock, (struct sockaddr *)&sin, sizeof sin ); if (n < 0) { fprintf(stderr, "connect failed (%ld)\n", h_errno); exit(1); } return; } void NetClose (void) { WSACleanup(); return; } int NetRead (char *buffer, int size) { int n; n = recv(sock, buffer, size, 0); if (n < 0) { fprintf(stderr, "Network read error (%ld)\n", h_errno); // exit(1); } return n; } void NetWrite (char *buffer, int size) { int n; n = send(sock, buffer, size, 0); if (n != size) { fprintf(stderr, "Network write error (%ld)\n", h_errno); // exit(1); } }