본문 바로가기
728x90

TCPIP2

13.다양한 입출력 함수들 리눅스 기반에서의 send & recv 함수를 소개하겠습니다. #include ssize_t send(int sockfd,const void * buf, size_t nbytes,int flags); ->성공 시 전송된 바이트 수, 실패 시 -1 반환 sockfd 데이터 전송 대상과의 연결을 의미하는 소켓의 파일 디스크립터 전달. buf 전송할 데이터를 저장하고 있는 버퍼의 주소 값 전달 nbytes 전송할 바이트 수 전달 flags 전송 시 적용할 옵션 정보 전달 #include ssize_t recv(int sockfd, void * buf, size_t nbytes,int flags); ->성공 시 수신한 바이트 수(단 EOF 는 0), 실패 시 -1 반환 sockfd 데이터 수신 대상과의 연결을 .. 2020. 5. 1.
11.프로세스 간 통신 (Inter Process Communication) 이번 챕터에서는 두개의 프로세스 상호간에 데이터를 주고받는 방법에 대해 알아보겠다. 이는 서버의 구현에 직접적인 연관은 없지만 운영체제를 이해한다는 측면에서도 의미가 있다. 프로세스간 통신이 가능 -> 데이터 주고 받음 -> 동시에 접근 가능한 메모리 공간 존재해야함 하지만 프로세스는 서로 완전히 별개의 메모리 공간을 지닌다. 따라서 fork 함수 호출을 통해 생성된 자식 프로세스 조차 부모 프로세스와 메모리 공간을 조금도 공유하지 않는다. 그래서 다른 방법을 통해 이루어질 수 있다. 두 프로세스 간의 통신을 위해 파이프라는 것을 생성해야한다. 위 그림처럼 파이프는 프로세스에 속한 것이 아니다. 파이프는 소셋과 마찬가지로 운영체제에 속하는 자원이다->그러므로 fork함수의 복사 대상이 아니다. 이렇게 운.. 2020. 4. 25.
728x90