Post List

[네트워크 프로그래밍] 열혈 TCP/IP 16장 정리(입출력 스트림의 분리에 대한 나머지 이야기)

[네트워크 프로그래밍] 열혈 TCP/IP 16장 정리(입출력 스트림의 분리에 대한 나머지 이야기)


이 장에서는 입출력 스트림을 나누고, 거기서 Half-close 하는 방법에 대해 학습합니다.
15장에서는 하나의 소켓 - 하나의 파일 디스크립터 - 2개의 파일 포인터로 파일 입출력을 했었는데, 이때 2개중 1개의 파일 포인터를 닫아버리면 - 하나의 파일 디스크립터도 닫히고 - 결과적으로 하나의 소켓도 닫히게 됩니다. 즉, Half-close가 작동하지 않습니다.

따라서, dup() 으로 파일 디스크립터를 복사 해야 합니다.
복사가 완전히 복사하는것은 아니고, 복사 후 파일 디스크립터 번호를 바꾸는 것 입니다.

복사한 파일 디스크립터와 원본 디스크립터를 각각 입출력 파일 포인터에 할당후, shutdown() 호출하면, Half-close를 구현할 수 있습니다.

[참고] 윤성우의 열혈 TCP/IP 소켓 프로그래밍

댓글