ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • server / client 데이터송수신과정
    Network 2013. 6. 14. 23:36

     출처 : http://blog.naver.com/shw20319/20149329949

     

     

     

     

     

    server측


    [연결 준비 단계]

    1. 소켓 생성(socket) : 네트워크 통신을 위해 소켓을 생성한다.

    s = socket(PF_INET, SOCKDGRM, 0);




    2. 연결할 주소 준비 : 클라이언트로부터 서비스 요처을 받아들일 서버의 프로토콜 주소(IP 주소와 포트 번호를 결정해서 구조체 sockaddr_in 자료형 변수에 저장한다.

    memset(&s_addr, 0, sizeof(s_addr));

    s_addr.sin_addr.s_addr = inet_addr(INADDR_ANY);

    s_addr.sin_family = AF_INET;

    s_addr.sin_port = htons(7000);



    3. 주소에 연결(bind) : 소켓을 접속저민 프로토콜 주소에 연결한다.

    bind( s, (struct sockaddr *)&s_addr, sizeof(s_addr) );

     

    [서비스 처리 단계]

    1. 자료의 송수신(recvfrom/sendto) : 클라이언트와 자료를 송수신하며 클라이언트에 서비스를 제공한다.

    UDP는 메시지 경계를 보존

    - 한 번 호출한 recvform()은 한 번 sendto()한 자료 반환 / sendto()와 recvfrom() 호출 회수가 일치해야한다.

    - 여러 클라이언트로부터 동시에 자료가 도착 / 발신자가 구분되도록 메시지 경계 유지 커널 버퍼에 복사하지 않음

    2. 연결 종료(close/shutdown) : 클라이언트와의 연결을 종료한다.

    UDP에서도 close 함수와 shutdown 함수를 사용

     

     

     

    client

    [연결 준비 단계]

    1. 소켓 생성(socket) : 네트워크 통신을 위해 소켓을 생성한다.

    2. 연결할 주소 준비 : 서비스를 요청할 서버의 프로토콜 주소(IP 주소와 포트 번호)를 구조체 변수에 저장한다.

     

    [서비스 처리 단계]

    1. 자료의 송수신(recvfrom/sendto) : 서비스를 제공받기 위해 서버로 자료를 전송하거나 전송받는다.


    2. 연결 종료(close/shutdown) : 서버와의 연결을 종료한다.

     

    'Network' 카테고리의 다른 글

    BGP up/down  (0) 2014.10.30
    BGP 간의 주고받는 메시지  (0) 2014.10.19
    ARQ(Automatic Repeat reQuest)  (0) 2014.01.01
    encapsulation  (0) 2013.12.21
    pcap Library  (0) 2013.06.14
Designed by Tistory.