소켓프로그래밍 질문드려요
글쓴이: qoqkwl6593 / 작성시간: 월, 2015/06/15 - 8:40오후
1번 소스
#define DEFALUT 1024 int main(int argc, char* argv[]) { int server, client; int client_len, n; char buf[DEFALUT]; struct sockaddr_in serveraddr, clientaddr; client_len = sizeof(clientaddr); if((server = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP) == -1)) { perror("socket error :"); exit(0); } memset(&serveraddr, 0x00, sizeof(serveraddr)); serveraddr.sin_family = AF_INET; serveraddr.sin_port = htons(atoi(argv[1])); serveraddr.sin_addr.s_addr = htonl(INADDR_ANY); bind(server, (struct sockaddr*)&serveraddr, sizeof(serveraddr)); listen(server, 5); client = accept(server, (struct sockaddr*)&clientaddr, &client_len); close(server); return 0; }
2번소스
#define MAXBUF 1024 int main(int argc, char* argv[]) { int server_sockfd, client_sockfd; int client_len, n; char buf[MAXBUF]; struct sockaddr_in clientaddr, serveraddr; client_len = sizeof(clientaddr); if((server_sockfd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) == -1) { perror("socket error:"); exit(0); } bzero(&serveraddr, sizeof(serveraddr)); serveraddr.sin_family = AF_INET; serveraddr.sin_port = htons(atoi(argv[1])); serveraddr.sin_addr.s_addr = htonl(INADDR_ANY); bind(server_sockfd, (struct sockaddr*)&serveraddr, sizeof(serveraddr)); listen(server_sockfd, 5); client_sockfd = accept(server_sockfd, (struct sockaddr*)&clientaddr, &client_len); return 0; }
2번소스를 토대로 1번소스를 만든것입니다만
accept()가 제대로 작동을 못하는 것같습니다.........
왜 그런지 잘 모르겠네요...
도움 부탁드립니다.
Forums:
일단 오류처리 먼저 하심이..
시스템프로그래밍에서는
어떤상황이 말생할지 모르기때문에 시스템 함수 호출 시 오류처리를 하는것이 좋습니다.
일단 accept, bind, listen에 모두 오류처리를해서 (perror) 어떤 메세지가 발생하는지 확인 하는것이
좀더 문제에 가까이 접근 할 수 있겠네요
댓글 달기