소켓프로그래밍 질문드려요
글쓴이: 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) 어떤 메세지가 발생하는지 확인 하는것이
좀더 문제에 가까이 접근 할 수 있겠네요
댓글 달기