#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[]) { struct sockaddr_in addr; struct sockaddr_in client; #ifdef WINSOCK_USE int len; SOCKET sock0, sock; WSADATA wsaData; // winsock2の初期化 WSAStartup(MAKEWORD(2,0), &wsaData); #else socklen_t len; int sock0, sock; #endif printf("*** TCP test(server) program start ***\n"); usleep(500000); /* ソケットの作成 */ sock0 = socket(AF_INET, SOCK_STREAM, 0); /* ソケットの設定 */ addr.sin_family = AF_INET; addr.sin_port = htons(12345); addr.sin_addr.s_addr = INADDR_ANY; bind(sock0, (struct sockaddr *)&addr, sizeof(addr)); /* TCPクライアントからの接続要求を待てる状態にする */ listen(sock0, 5); /* TCPクライアントからの接続要求を受け付ける */ len = sizeof(client); sock = accept(sock0, (struct sockaddr *)&client, &len); /* 5文字送信 */ send(sock, "HELLO", 5, 0); #ifdef WINSOCK_USE /* TCPセッションの終了 */ closesocket(sock); /* listen するsocketの終了 */ closesocket(sock0); // winsock2の終了 WSACleanup(); #else /* TCPセッションの終了 */ close(sock); /* listen するsocketの終了 */ close(sock0); #endif return 0; }