UDP 통신관련 시스템 함수
네트워크 통신을 지원하는 O/S 에서 UDP 통신 관련한 시스템 함수들에 대해 간단하게 설명한다.
이 시스템 함수들은 UDP 통신에 필요한 요소들을 모듈화 해 놓은 함수들이므로 이 함수들을 살펴 보는 것으로도 UDP 통신을 이해하는 데 많은 도움이 될 것이다.
각 O/S 별로 시스템 함수의 명칭은 다를 수 있겠지만 통상적으로 언급되는 명칭으로 명기하여 간단히 설명한다..
socket() → 소켓 생성
파라미터 | |
수행동작 |
♦ 프로토콜 스택에 소켓의 정보를 저장하기 위한 메모리 할당 ♦ 소켓번호 생성 → 소켓번호는 O/S에서 파일디스크립터(fd)로 표현된다 |
반환값 | 파일 디스크립터/소켓번호 ← 프로토콜 스택 상에서 각 소켓을 구분해 주는 번호(포인터) |
bind() → 소켓 결합(서버기능)
파라미터 | 소켓번호, 소켓주소(IP, Port) |
수행동작 | 소켓번호와 소켓주소를 하나의 쌍으로 맺어 준다 → 어플리케이션 레이어에서 사용되는 소켓번호가 이로써 TCP 통신채널과 연결된다. |
반환값 | 0(성공) / -1(실패) |
connect() → 소켓 연결 (클라이언트 기능)
파라미터 | 소켓번호, 소켓주소(IP, Port) |
수행동작 | 소켓주소(IP, 포트번호)를 소켓에 할당 |
반환값 | 0(성공) / -1(실패) |
sendto() → 데이터 송신
파라미터 | 송신용 소켓번호, 송신데이터, Remote 소켓주소(IP, Port) |
수행동작 |
♦ 소켓주소(IP, Port) 할당하고 → Remote 소켓주소로 데이터 전송 ⊕ recvfrom()보다 sendto()를 먼저 호출한 통신노드/호스트가 UDP 클라이어트 |
반환값 |
recvfrom() → 데이터 수신
파라미터 | 수신용 소켓번호, 수신 데이터 버퍼, 클라이언트 소켓주소(IP, Port) |
수행동작 |
♦ 하위 레이어로 부터 올라온 데이터를 수신 버퍼에 저장한후 적절하게 상위레이어에 전달한다. ♦ 데이터 송수신은 클라언트 소켓과 서버소켓을 이용한다. ⊕sendto() 보다 recvfrom()을 먼저 호출한 통신노드/호스트가 UDP 서버 |
반환값 | 0(성공) / -1(실패) |
close() → 소켓종료
파라미터 | 소켓번호 |
수행동작 | 소켓에 할당된 Port 번호 해제 |
반환값 | 0(성공) / -1(실패) |