방프리
20.02.14 TCP/IP 연습문제 Chapter 01 본문
1. 네트워크 프로그래밍에서 소켓이 담당하는 역할은 무엇인가? 그리고 소켓이라는 이름이 붙은 이유는 어디에 있는가?
- 물리적으로 연결된 네트워크상에서의 데이터 송수신에 사용할 수 있는 소프트웨어적인 장치를 의미
- 연결이라는 의미
2. 서버 프로그램에서는 소켓생성 이후에 listen 함수와 accept 함수를 차례대로 호출한다. 그렇다면 이들의 역할은 각각 무엇인지 비교해서 설명해보자.
- 전화기로 빗대었을 때 사용자가 전화를 걸 대상의 전화번호를 알아내는 것이 listen, 그리고 전화를 받을 대상자가 현재 전화를 받은 상태가 accept이다.
3. 리눅스의 경우 파일 입출력 함수를 소켓 기반의 데이터 입출력에 사용할 수 있다. 반면 윈도우에서는 이것이 불가능하다. 그렇다면 리눅스에서는 가능하고, 윈도우에서는 불가능한 이유는 무엇인가?
- 리눅스에서는 소켓을 파일의 일종으로 구분한다. 하지만 윈도우의 경우엔 파일과 소켓을 구분하기 때문에 사용할 수 없다.
4. 소켓을 생성한 다음에는 주소할당의 과정을 거친다. 그렇다면 주소할당이 필요한 이유는 무엇이며, 이를 목적으로 호출하는 함수는 또 무엇인가?
- 주소를 할당받아야지만 연결하고자 하는 대상에게 데이터를 보낼 장소를 알려줄 수 있다. bind() 함수를 통해 할당받는다.
5. 리눅스의 파일 디스크립터와 윈도우의 핸들이 의미하는 바는 사실상 같다. 그렇다면 이들이 의미하는 바가 무엇인지 소켓을 대상으로 설명해보자.
- 리눅스의 파일 디스크립터는 파일을 구분하고 지칭할 목적으로 파일에 부여된 정수 값이다. 리눅스의 파일 디스크립터와 윈도우의 핸들은 소켓을 구분하고 지정하는 목적으로 소켓에 부여된 정수 값이다.
6. 저 수준 파일 입출력 함수와 ANSI 표준에서 정의하는 파일 입출력 함수는 어떠한 차이가 있는가?
- 저 수준 파일 입출력 함수는 운영체제가 독립적으로 제공하는 함수. 즉, 리눅스에서 제공하는 함수들이다.
7. 본문에서 보인 예제 low_open.c 와 low_read.c를 참조하여 파일 복사 프로그램을 작성하되, 저 수준 파일 입출력 함수를 기반으로, 그리고 ANSI표준 입출력 함수를 기반으로 각각 한번씩 작성해보자. 그리고 복사 프로그램의 사용방법은 여러분이 임의로 결정하기 바란다.
[저 수준 파일 입출력]
[ANSI 표준]
'Server&Network > TCP&IP' 카테고리의 다른 글
20.02.17 TCP/IP 연습문제 Chapter 03 (0) | 2020.02.17 |
---|---|
20.02.16 TCP/IP 연습문제 Chapter 02 (0) | 2020.02.16 |
18.01.09 SAS, SATA, SCSI, ATA 의 차이점!! (0) | 2020.01.17 |
18.01.09 FATAL: No bootable medium found! System halted. (0) | 2020.01.17 |
18.01.08 VMware create 32bit os in 64bit host os (0) | 2020.01.17 |
Comments