#include소스 설명은 추후에#include #include #include #define BUFSIZE 1024 void ErrorHandling(char *message){ fputs(message, stderr); fputc('\n',stderr); exit(1); } int main(int argc, char **argv){ WSADATA wsaData; SOCKET hServSock; SOCKET hClntSock; char message[BUFSIZE]; int strlen; SOCKADDR_IN servAddr; SOCKADDR_IN clntAddr; int clntAddrSize; if(argc!=2){ printf("Usage : %s \n",argv[0]); exit(1); } /*윈속 초기화*/ if(WSAStartup(MAKEWORD(2,2),&wsaData) !=0) ErrorHandling("WSAStartup Error!"); hServSock=socket(PF_INET, SOCK_STREAM, 0); if(hServSock == INVALID_SOCKET) ErrorHandling("socket Error!!"); memset(&servAddr, 0, sizeof(servAddr)); servAddr.sin_family=AF_INET; servAddr.sin_addr.s_addr=htonl(INADDR_ANY); servAddr.sin_port=htons(atoi(argv[1])); if(bind(hServSock, (SOCKADDR *)&servAddr, sizeof(servAddr))==SOCKET_ERROR) ErrorHandling("bind() Error!!"); if(listen(hServSock, 5)==SOCKET_ERROR) ErrorHandling("listen() Error!!"); clntAddrSize=sizeof(clntAddr); hClntSock=accept(hServSock, (SOCKADDR *) &clntAddr, &clntAddrSize); if(hClntSock==INVALID_SOCKET) ErrorHandling("accept() Error!!"); while((strlen=recv(hClntSock, message, BUFSIZE, 0)) !=0){ send(hClntSock, message, strlen, 0); } closesocket(hClntSock); WSACleanup(); return 0; }
트랙백을 보내세요
트랙백 주소 :: http://www.bluene.net/blog/trackback/485

