TCP/IP는 socket관련 API를 통하여 socket을 생성합니다.

 

 

TCP/IP socket 통신 함수 호출 순서

TCP/IP의 Server와 Client의 기본적인 socket 생성과 접속 및 데이터 송수신의 흐름은 아래와 같습니다.

 

Client TCP/IP Flow

Client socket의 생성 및 접속 절차는 아래와 같습니다.

 

1. socket(2)함수를 통하여 socket을 생성합니다.

TCP/IP는 IP 기반이므로 Address Family를 AF_INET 설정하고 TCP는 연결지향형으므로 SOCK_STREAM으로 설정합니다.

    int client_sock;

    if((client_sock = socket(AF_INET, SOCK_STREAM, 0)) == -1) {
        fprintf(stderr, "CLIENT SOCKET 생성 오류: %s\n", strerror(errno));
        return -1;
    }

 

2. connect(2)함수를 서버 socket에 접속합니다.

정상적으로 connect(2)가 되면 서버와 연결된 상태가 됩니다.

    struct sockaddr_in server_addr;
    
    memset(&server_addr, 0x00, sizeof(struct sockaddr_in));

    server_addr.sin_family       = AF_INET;
    server_addr.sin_port         = htons(port);
    server_addr.sin_addr.s_addr  = inet_addr(addr);

    if(connect(sock, (struct sockaddr *)&server_addr, sizeof(struct sockaddr_in)) == -1) {
        close(sock);
        return -1;
    }

 

3. recv(2) / send(2)로 데이터를 송수신합니다.

서로 정한 전문 format에 따라 send(2)/recv(2)를 이용하여 데이터를 송수신합니다.

 

4. close(2)

데이터 송수신이 완료되면, socket을 close하여 통신을 종료합니다.

 


see also :  TCP/IP 통신 프로그램   Socket 통신 관련 Library  

블로그 이미지

사용자 자연&사람

행복한 개발자 programmer since 1995.

Tag , , ,

댓글을 달아 주세요