본문 바로가기

[+] Information/[-] Network

[2009/06/01] Iterative 서버와 에코서버 1. TCP 서버/클라이언트 함수호출 관계 2. Iterative 서버의 구현 - Iterative 서버 : 반복해서 클라이언트의 요청을 처리한다. 3. Iterative 서버의 코드 Template 4. echo 서버/클라이언트의 구현 - 에코 서버/클라이언트의 기능 더보기
[2009/05/31] 예제소스(helloworld_client.c) /* helloworld_client.c */ #include #include #include #include #include #include void error_handling(char *message); int main(int argc, char **argv) { int sock; struct sockaddr_in serv_addr; char message[30]; int str_len; if(argc!=3) { printf("Usage : %s \n", argv[0]); exit(1); } sock=socket(PF_INET, SOCK_STREAM, 0); if(sock == -1) error_handling("scoket() error"); memset(&serv_addr, 0, sizeof(se.. 더보기
[2009/05/31] TCP 기반 클라이언트의 구현 1. 클라이언트의 기본적인 함수 호출 순서 2. 연결 요청 함수 - 소켓과 목적지 주소에 대한 정보를 마련 해 두고 나서 연결 요청을 시도 한다. #include int connect(int sockfd, struct sockaddr *serv_addr, int addrlen); (리눅스) #include int connect(SOCKET s, const struct sockaddr FAR *name, int namelen); (윈도우) 더보기
[2009/05/30] 예제소스(helloworld_server.c) /* helloworld_server.c */ #include #include #include #include #include #include #include void error_handling(char *message); int main(int argc, char **argv) { int serv_sock; int clnt_sock; struct sockaddr_in serv_addr; struct sockaddr_in clnt_addr; int clnt_addr_size; char message[]="Hello World!\n"; if(argc!=2) { printf("Usage : %s \n", argv[0]); exit(1); } serv_sock=socket(PF_INET, SOCK_STREAM.. 더보기
[2009/05/30] TCP 기반 서버의 구현 1. 서버에서의 기본적인 함수 호출 순서 2. '연결 요청 대기 상태'로의 진입 - listen 함수는 전달되는 인자의 소켓을 '서버 소켓'이 되게 한다. - listen 함수는 '연결 요청 대기 큐'를 생성 한다. #include int listen (int s, int backlog); (리눅스) *int s : 서버 소켓 파일 디스크립터. *int backlog : 연결 요청 대기 큐 크기 지정. #include int listen(SOCKET s, int backlog); (윈도우) * SOCKET s : 서버 소켓 파일 핸들. 3. 서버의 역할과 연결요청 대기상태 - 서버 소켓은 일종의 '문지기'이다. 4. 연결요청 수락하기. - 연결요청 대기 큐(Queue)에 존재하는 클라이언트의 연결 요청 .. 더보기