본문 바로가기

공부/tcp/ip 프로그래밍

7장 소켓의 우아한 연결종료

반응형

close(), closesocket()는 송수신스트림 둘다를 끊어버림

 

하나의 스트림만을 끊기 위한 함수

리눅스

#include <sys/socket.h>

int shutdown(int sock, int howto);

성공시 0, 실패시 -1 반환

 

sock : 종료할 소켓의 파일 디스크립터 전달

howto : 종료방법에 대한 정보 전달

 -> SHUT_RD : 입력 스트림 종료

     SHUT_WR : 출력 스트림 종료

     SHUT_RDWR : 입출력 스트림 종료

 

출력 스트림을 종료하면 상대호스트로 EOF가 전송됨

 

윈도우

#include <winsock2.h>

int shutdown(SOCKET sock, int howto);

성공시 0, 실패시 SOCKET_ERROR반환

 

sock : 종료할 소켓의 핸들

howto : 종료방법에 대한 정보 전달

-> SD_RECEIVE 입력 스트림 종료

    SD_SEND 출력 스트림 종료

    SD_BOTH 입출력 스트림 종료

반응형