C/TCPIP 소켓 프로그래밍(윤성우 저)

TCP/IP 소켓 프로그래밍 15장 내용 확인문제

꾸준함. 2017. 7. 12. 21:21

1. 표준 입출력 함수를 사용했을 때 얻게 되는 장점 두 가지는 무엇인가? 그리고 그 두가지 장점을 얻게 되는 이유는 또 무엇인가?


>표준 입출력 함수를 사용할 경우 이식성이 좋고 버퍼링을 통한 성능 향상에 도움이 된다. 

a. 표준 입출력 함수는 모든 운영체제에서 동작하는 함수들이기 때문에 이식성이 좋아진다. 

b. 그리고 표준 입출력 함수를 사용하면 소켓의 입출력 버퍼의 앞단계에서 성능의 향상을 목적으로 하는 입출력 버퍼가 하나 더 추가되기 때문에 성능의 향상에 도움이 된다.


2. 표준 출력함수를 이용해서 데이터를 전송하는 경우에는 다음과 같이 생각하는 것은 옳지 않다.

"fputs 함수호출을 통해서 데이터를 전송하면, 함수가 호출되자마자 데이터의 전송이 시작될 거야!"

그렇다면 위와 같은 생각이 옳지 않은 이유는 무엇이고, 위와 같이 생각하기 위해서는 추가로 어떠한 과정이 필요한지 설명해보자.


>표준 출력함수를 통해서 전송되는 데이터는 바로 소켓의 출력버퍼로 이동하지 않고, 표준 출력함수의 버퍼에 저장된다. 그 다음에야 비로소 출력버퍼로 이동하게 된다. 따라서 fputs 함수가 호출된다고 해서 바로 데이터의 전송이 시작되는 것은 아니다. 만약에 함수 호출 이후에 바로 이어서 데이터의 전송을 원한다면 fflush 함수의 호출과정을 거쳐야한다.(fflush 함수를 통해 출력버퍼를 비워준다)


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


반응형