본문 바로가기

네트워크 프로그래밍

[2009/06/01] Iterative 서버와 에코서버 1. TCP 서버/클라이언트 함수호출 관계 2. Iterative 서버의 구현 - Iterative 서버 : 반복해서 클라이언트의 요청을 처리한다. 3. Iterative 서버의 코드 Template 4. echo 서버/클라이언트의 구현 - 에코 서버/클라이언트의 기능 더보기
[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] 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)에 존재하는 클라이언트의 연결 요청 .. 더보기
[2009/05/30] TCP/IP 프로토콜 스택 1. TCP/IP 프로토콜 스택 2. LINK 계층(Physical) - 물리적인 영역을 담당한다. 3. IP 계층(Network) - 데이터 전송을 담당한다. - 데이터의 순서는 상관하지 않는다. - 데이터의 손실이 일어 날수 있다. - 반드시 전송된다는 보장도 없기 때문에 신뢰성도 없다. 4. TCP/UDP 계층(Transport) 5. Application(Application) - 소켓을 이용한 프로그램의 구현을 의미한다. - 일반적으로 소켓 프로그래밍이라고 하면 Application 계층의 프로토콜을 정의하고 구현하는 것을 말한다. - "Hello World" 서버 / 클라이언트도 Application 프로토콜의 구현이다. - 지금까지 이야기 해 온 내부 구조를 알지 못해도 소켓 프로그래밍이 가.. 더보기
[2009/05/26] 소켓의 생성과 프로토콜의 설정 1. 프로토콜의 정의 - 컴퓨터(호스트) 상호간의 대화에 필요한 통신 규약 1) 호스트 상호간에는 프로토콜에 대한 이해가 필요. - 프로토콜은 잘 정의되어야 하며, 혼돈의 소지가 있으면 안된다. - 이미 정의 되어 있는 프로토콜도 존재하며, 앞으로 우리도 많은 프로토콜을 설계 할 것이다. 2. 소켓의 생성 - 소켓은 기본적인 통신의 도구이다. - 프로토콜에 독립적이다. - 데이터 전송 타입을 지정 해 줘야 한다. 1) 연결 지향 소켓, 비 연결 지향 소켓 #include #include int socket(int domain, int type, int protocol) 1) int domain : 프로토콜 체계 지정 부분. 프로토콜 체계 정 의 PF_INET IPv4 인터넷 프로토콜 PF_INET6 IP.. 더보기