3장
in_addr_t inet_addr( const char * string );
- 문자열로 표현된 IP 주소를 32비트 정수형으로 변환해 주는 함수
- 변환과정에서 네트워크 바이트 순서로의 변환도 동시에 진행된다.
- 성공 시 빅엔디안으로 변환된 32비트 정수 값, 실패 시 INADDR_NONE 반환
int inet_aton (const char * string, struct in_addr * )
- addr : 변환된 정보를 저장할 in_Addr 구조체 변수의 주소 값 전달
int sokcet(int domain, int type, int protocol)
- domain : 소켓이 사용할 프로토콜 체계 정보 전달
- type : 소켓의 데이터 전송방식에 대한 정보 전달
- protocol : 두 컴퓨터간 통신에 사용되는 프로토콜 정보 전달
int bind(int sockfd, struct sockaddr *myaddr, socklen_t addrlen)
- sockfd : 주소정보를 아이피, 포트를 할당할 소켓의 파일 디스크립터
- myaddr : 할당하고자 하는 주소정보를 지니는 구조체 변수의 주소 값
- addrlen : 두 번째 인자로 전달된 구조체 변수의 길이 정보
int listen( int sock, int backlog)
- 성공 시 0, 실패시 -1
- sock : 연결요청 대기상태에 두고자 하는 소켓의 파일 디스크립터 전달, 이 함수의 인자로 전달된 디스크립터의 소켓이 서버 소켓(리스닝소켓)이 된다.
- backlog : 연결요청 대기 큐의 크기정보 전달. 5가 전달되면 큐의 크기가 5. 클라이언트 연결요청을 5개까지 대기시킬 수 있다.
int accept( int sock, struct sockaddr * addr, socklen_t * addrlen)
- 성공 시 생성된 소켓의 파일 디스크립터, 실패 시 -1 반환
- sock : 서버 소켓의 파일 디스크립터 전달
- addr : 연결 요청한, 클라이언트 주소정보를 담을 변수의 주소 값.
- addrlen :
[클라이언트] int connect ( int sock, struct sockaddr * servaddr, socklen_t addrlen)
- 성공 시 0, 실패시 -1
- sock : 클라이언트 소켓 파일 디스크립터
- servaddr : 연결요청 할 서버의 주소정보를 담은 변수의 주소 값 전달
- addrlen : ~~~ 바이트 단위로 전달.
- connect 함수 호출 시 자동으로 소켓에 IP와 PORT가 할당된다.
pid_t wait( int * statloc);
- 성공 시 종료된 자식 프로세스의 ID, 실패 시 -1 반환
- 부모가 자식에게 요청하는 함수. (정상적으로 종료됐는 지 확인한다.)
- 임의의 자식 프로세스가 종료될 때까지 블로킹 상태에 놓인다는 특징. 함수 호출에 주의!
pid_t waitpid( pid_t pid, int * statloc, int options );
- 성공 시 종료된 자식 프로세스의 ID (혹은 O), 실패 시 -1 반환
- pid : 자식 프로세스의 ID
- statloc : wait 함수의 매개변수 statloc과 동일한 의미
- options : 헤더파일 sys/wait.h에 선언된 상수 WNOHANG을 인자로 전달하면, 종료된 자식 프로세스가 존재하지 않아도 블로킹 상태에 있지 않고, 0을 반환하면서 함수를 빠져나온다.
void (*signal( int signo, void (*func)(int) ) ) (int);
- 시그널 발생시 호출되도록 이전에 등록된 함수의 포인터 반환
Chapter 11 프로세스간 통신 (Inter Process Communication)
int pipe( int filedes[2]);
- 성공 0, 실패 -1 반환
- [0] 수신하는 파일 디스크립터, 출구
- [1] 전송하는 파일 디스크립터, 입구
'Computer Networking' 카테고리의 다른 글
1,2,3,4 (0) | 2014.06.10 |
---|---|
네트워크 함수관련 찾기 좋은 사이트 (0) | 2014.06.07 |
computer networking - 내용정리 (0) | 2014.06.03 |
중간,기말,프로젝트 (0) | 2014.06.02 |
[TCP/IP] 1. 네트워크 프로그래밍의 시작 (0) | 2014.06.02 |