Clolent

UDP 소켓의 특성

- UDP는 TCP보다 훨씬 간결한 구조로 설계되어있다. 

- UDP 는 신뢰성이 떨어진다.

- UCP 는 Flow Control 이 없다. 

- TCP 보다 훨씬 빠르다.

- Listen 함수와 Accept 함수의 호출은 불필요하다.

- UDP 소켓의 생성과 데이터의 송수신 과정만 존재할 뿐이다.


- UDP 는 서버건 클라이언트건 하나의 소켓만 있으면 됩니다.


편지를 보내고 받을때 우체통 하나만 있으면 된다 ! 


UDP 소켓의 특성2

- TCP 는 연결을 한 상태를 유지하기 때문에 연결 후 따로 주소 정보를 따로
    추가하는 과정이 필요하지 않지만, 전송 할때마다 반드시 목적지의
    주소정보를 별도로 추가해야한다.


UDP 기반 데이터 입출력 함수


ssize_t sendto ( int sock, void *buff, size_t nbytes, int flags, 

struct sockaddr *to , socklen_t addrlen ) ;


- sock  : 데이터 전송에 사용될 UDP 소켓의 파일 디스크립터를 인자로 전달

- buff  : 전송할 데이터를 저장하고 있는 버퍼의 주소 값 전달

- nbytes : 전송할 데이터 크기를 바이트 단위로 전달

- flags   : 옵션 지정에 사용되는 매개변수, 지정할 옵션이 없다면 0 전달

- addrien : 매개변수 to 로 전달된 주소값의 구조체 변수 크기 전달


ssize_t recvfrom ( int sock, void *buff, size_t nbytes, int flags, 

struct sockaddr *from , socklen_t *addrlen ) ;


- sock  : 데이터 수신에 사용될 UDP 소켓의 파일 디스크립터를 인자로 전달

- buff  : 데이터 수신에 사용될 버퍼의 주소 값 전달

- nbytes  : 수신할 최대 바이트 수 전달, 때문에 매개변수 buff 가 가리키는 버퍼의 

크기를 넘을 수 없다.

- flags  : 옵션 지정에 사용되는 매개변수, 지정할 옵션이 없다면 0 전달

- from  : 발신지 정보를 채워 넣을 sockaddr 구조체 변수의 주소 값 전달

- addrien  : 매개변수 from 으로 전달된 주소에 해당하는 구조체 변수의 크기정보를
                담고 있는 변수의 주소값 전달


UDP 클라이언트 소켓의 주소정보 할당

sendto 함수 호출시 IP와 PORT 번호가 자도으로 할당되기 때문에 일반적으로 UDP 클라이언트 프로그램 에서는 주소정보를 할당하는 별도의 과정이 불필요

댓글 로드 중…

블로그 정보

Clolent - 커피물조절달인

최근에 게시된 글