#if defined(__MINGW64__) #error Cannot compile in MINGW64 environment, MINGW32 required. #elif defined(__MINGW32__) #define WINSOCK_USE 2.0 /* Only 32bit library */ #endif #include #include #include #include #ifdef WINSOCK_USE #include #else #include #include #include #endif int main(int argc, char *argv[]) { int n; struct sockaddr_in server; char buf[32]; #ifdef WINSOCK_USE SOCKET sock; WSADATA wsaData; // winsock2の初期化 WSAStartup(MAKEWORD(2,0), &wsaData); #else int sock; #endif /* ソケットの作成 */ if ((sock = socket(AF_INET, SOCK_STREAM, 0)) < 0) { perror("socket"); #ifdef WINSOCK_USE printf("error:%d\n",WSAGetLastError()); #endif } /* 接続先指定用構造体の準備 */ server.sin_family = AF_INET; server.sin_port = htons(12345); server.sin_addr.s_addr = inet_addr("127.0.0.1"); /* サーバに接続 */ connect(sock, (struct sockaddr *)&server, sizeof(server)); /* サーバからデータを受信 */ memset(buf, 0, sizeof(buf)); n = recv(sock, buf, sizeof(buf), 0); printf("%d, %s\n", n, buf); /* socketの終了 */ #ifdef WINSOCK_USE closesocket(sock); // winsock2の終了 WSACleanup(); #else close(sock); #endif return 0; }