728x90
- close() 함수 호출을 통해 일방적으로 connection을 종료하면 host 사이에 데이터가 정상적으로 도달하지 못한채 종료되는 경우가 발생할 수 있다.
- 소켓의 스트림은 한쪽 방향으로만 데이터의 이동이 가능하기 때문에 양방향 통신을 위해서는 두개의 스트림이 필요하다.
- host1의 출력 스트림은 host2의 입력 스트림으로, host 2의 출력 스트림은 host1의 입력 스트림으로 이어진다.
[우아한 종료를 위한 shoutdown 함수]
int shutdown(int sock, int howto);
- sock : 종료할 소켓의 파일 디스크립터 전달
- howto : 종료 방법에 대한 정보 전달
1. SHUT_RD : 입력 스트림 종료
2. SHUT_WR : 출력 스트림 종료
3. SHUT_RDWR : 입출력 스트림 종료
[file_client.c]
[file_client.c]
[터미널 실행 결과]
- “Thank you” : 클라이언트 -> 서버 (shutdown 함수 호출 후에 read 함수를 이용하여 클라이언트가 보낸 메세지를 받아왔다.
728x90
'Computer Network' 카테고리의 다른 글
세미나 3차 - 서버 가상화에 대하여 (2) | 2024.01.03 |
---|---|
세미나 2차 - MacOS에서 Wireshark 실습하기 / 네트워크 지연 (1) | 2023.11.26 |
세미나 1차 - 실무에서 사용하는 네트워크 기초 (0) | 2023.10.22 |
컴퓨터 네트워크 — Echo Client and Server (0) | 2021.03.07 |