>> Read No. 40279 article  
[질문]간단한 네트워크프로그래밍입니다

등록 2002-01-20 06:40:00     조회 1
이름 networkPGM    

		안녕하세요..
네트워크 프로그래밍을 이제 막시작했습니다..
telnet으로 적속하면 그냥 hello를 찍기한 하는
간단한 프로그래밍인데..
소스분석도중...도무지 윈도우에서 씨를 자주썻던 저로써는
이해가 잘 안가네요..
우선 소스부터
 #include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
#include <netinet/in.h>
#include <sys/socket.h>
#include <sys/wait.h>
 #define MYPORT 6969
 #define BACKLOG 2
 main()
{
	int sockfd, new_fd;
	struct sockaddr_in my_addr;
	struct sockaddr_in their_addr;
	int sin_size;
 	if((sockfd = socket(AF_INET,SOCK_STREAM,0))== -1)
	{
		perror("socket");
		exit(1);
	}
	my_addr.sin_family=AF_INET;
	my_addr.sin_port= htons(MYPORT);
	my_addr.sin_addr.s_addr= INADDR_ANY;
	bzero(&(my_addr.sin_zero),sizeof(my_addr.sin_zero));
 	if(bind(sockfd,(struct sockaddr *)&my_addr,sizeof(struct
sockaddr))==-1)
	{
		perror("bind");
		exit(1);
	}
 	if(listen(sockfd,BACKLOG) == -1)
	{
		perror("listen");
		exit(1);
	}
       	while(1) //<--------- 문제의 부분시작
	{
		sin_size = sizeof(struct sockaddr_in);
               
		if((new_fd = accept(sockfd,(struct sockaddr *)
&their_addr,&sin_size)) == -1)
                   {       
                           perror("accept");
			continue;
                       
       		}
               
 		printf("sever : got connection from %s",inet_ntoa
(their_addr.sin_addr));//가장 문제의 부분
		if(!fork())
		{
			if(send(new_fd,"hello",6,0)== -1)
				perror("send");
 			close(new_fd);
 			exit(0);
		}
		close(new_fd);
 		while(waitpid(-1,NULL,WNOHANG) > 0);
 	}
}
 소스 구조는 정말 간단합니다..
 어떤 클라이언트에서 접속이 오면 클라이언트는 hello를
서버쪽에는 그 클라이언트 주소를 뿌려줍니다.
while(1)이기때문에 계속 돌겠죠? 근데 밑에 보면
printf("sever : got connection from %s",inet_ntoa
(their_addr.sin_addr));
이문장이 있는데 이문장을 계속 찍게 되는것 아닌가요?
근데 막상 실행해보면 화면에 아무것도 안뜨고 접속이 있을시에면
주소를 찍는군요.. 평상시 C상식으로는 도무지 이해가 가지 않는데..
설명좀 해주세요..
  글 읽느라 수고 많으셨습니다..감사합니다..
좋은하루되세요.
이름
암호


>> 관련글
40279 [질문]간단한 네트워크프로그래밍입니다  networkPGM  2002.01.20  ....
  답장 RE: [질문]간단한 네트워크프로그래밍입니다  사포  2002.01.20  ....
Register [ localhost 목록보기 윗글 아랫글
글쓰기
답장쓰기 수정 삭제
정규표현식 [ 상세 검색 ]
페이지로딩: [ 0.61 초 ] 작업시간: [ 0.08 초 ]

Copyleft 1999-2026 by JSBoard Open Project
Theme Designed by IDOO All right reserved
[TOP]

적수네 동네
+
| 적수네 동네
| 공부방
| 리눅스 잡지 서고
| LSN 소스
| 링크 모음
+---+
게시판
+
| 떠들어보세!
| 질문과 답변
| 새소식과 정보
| 1원짜리 팁?
| 대화방
+---+
칼럼?
+
| 세하 훔쳐보기
| Welcome2nite
| 혜진의 염장판
+---+
리눅스 상표권
+
| 반대 서명란
| 토론 게시판
+---+
GNU
+
| GNU 선언문
| GNU GPL
| GNU 미러 목록
+---+
프로젝트?
+
| 리눅스카운터
| RC5DES
| 실질헌법 제작
+---+
커널 소식
+
| 안정 버젼: 2.4.14
+---+
테마 선택
+
LSN 방송국?
+
| OFF AIR
+---+
회원
+
| 로그인
+---+
[ 적수네 동네 ] [ 리눅스 상표권 독점 반대 ] [ 한글 리눅스 문서 프로젝트 ] [ KrLine ] [ 사랑넷 ] [ Valid HTML 4.0! ] [ SlashDot ] [ Freshmeat ]
Copyleft (C) 1998-2001 Byeong-Chan Kim . License
TIME: 1792230339
System by WYZsoft, HDD by I.O.Linux, Mizi Research, Embryo, WOWLINUX, Domain by SarangNet, Network by KrLine.