#include#include #pragma comment(lib, "wsock32.lib") void main() { SOCKET s, cs; WSADATA wsaData; struct sockaddr_in sin; struct sockaddr_in cli_addr; int size = sizeof(cli_addr); if( WSAStartup(WINSOCK_VERSION, &wsaData) != 0 ){ printf("WSAStartup 실패, 에러코드 = %d\n", WSAGetLastError()); return; } s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if(s==INVALID_SOCKET){ printf("소켓 생성 실패, 에러코드 : %d\n", WSAGetLastError()); WSACleanup(); return; } sin.sin_family = AF_INET; sin.sin_port = htons(10000); sin.sin_addr.s_addr = htonl(ADDR_ANY); bind(s, (struct sockaddr*)&sin, sizeof(sin)); listen(s, SOMAXCONN); puts("클라이언트의 연결을 기다리고 있습니다...\n"); cs = accept(s, (struct sockaddr*)&cli_addr, &size); if(cs == INVALID_SOCKET) { printf("소켓생성실패, 에러코드 : %d\n", WSAGetLastError()); WSACleanup(); return; } puts("클라이언트와 연결되었습니다...\n"); if(closesocket(s)!=0 || closesocket(cs)!=0){ printf("소켓 제거 실패, 에러코드 = %u\n", WSAGetLastError()); WSACleanup(); return; } }
Tip&Skill