>>797
普通に動くが。
 cl -DADDR=0 -DPORT=12345 a.c -Feserver.exe wsock32.lib
 cl -DADDR=0x7f000001 -DPORT=12345 a.c -Feclient.exe wsock32.lib
 cl a.c -Fechild.exe wsock32.lib
#include <winsock.h>
int main(int ac, char **av) {
 SOCKET s, c; char buf[128]; struct sockaddr_in sin;
 PROCESS_INFORMATION pi; STARTUPINFO si = {sizeof si};
 WSADATA data; WSAStartup(MAKEWORD(1, 1), &data);
#ifdef PORT
 s = socket(PF_INET, SOCK_STREAM, 0);
 sin.sin_family = AF_INET; sin.sin_port = PORT;
 sin.sin_addr.s_addr = htonl(ADDR);
#if !ADDR
 bind(s, (struct sockaddr *)&sin, sizeof sin);
 listen(s, 1);
 c = accept(s, NULL, NULL);
 recv(c, buf, 4, 0); printf("server: %.4s\n", buf);
 sprintf(buf, "child %d", c);
 CreateProcess(NULL, buf, NULL, NULL, TRUE, 0, NULL, NULL, &si, &pi);
 WaitForSingleObject(pi.hProcess, INFINITE);
#else /* ADDR */
 connect(s, (struct sockaddr *)&sin, sizeof sin);
 send(s, "0123456789", 10, 0);
#endif /* ADDR */
#else /* !PORT */
 recv((SOCKET)atoi(av[1]), buf, 6, 0); printf("child: %.6s\n", buf);
#endif /* !PORT */
 closesocket(s); return 0;
}