본문 바로가기
2023-1/컴퓨터네트워크및실습

UDP Server & Client

by 철없는민물장어 2023. 6. 11.
728x90
반응형

UDP

 

추가기능이 없는 전송프로토콜. 

세그먼트가 로스될 수도 있고, 세그먼트 순서가 뒤바뀔수도 있는 서비스이다.

 

TCP는 일대일이라서 여러 호스트가 연결하면 각 클라이언트와의 소켓이 필요하다.

UDP는 여러 클라이언트와 통신하기 위해 하나의 소켓만 있으면 된다.

 

UDP는 "Connectionless" 방식으로, 서버,클라이언트 모두 하나의 소켓만 이용하면 된다.

 

sendto()

#include <sys/socket.h>

ssize_t sendto(int sock, void *buff, size_t nbytes, int flags, struct sockaddr *to,socklen_t addrlen);

TCP에서는 socket을 열면서 IP,PORT가 설정되어 write시 따로 이를 설정할 필요가 없었는데, UDP는 accept를 거치지 않으므로 누구에게 보낼지 적어줘야한다. 위 코드에서 to 인자에 IP, PORT를 설정한다.

 

recvfrom()

#include <sys/socket.h>
ssize_t recvfrom(int sock, void * buff, soze_t nbytes, int flags, struct sockaddr *from, socklen_t addrlen);

여기서 *from은 운영체제가 채워준다.

 

 

728x90
반응형

'2023-1 > 컴퓨터네트워크및실습' 카테고리의 다른 글

Go-Back-N, Selective Repeat  (0) 2023.06.11
Reliable Data Transfer(RDT)  (0) 2023.06.11
Transport Layer Basic  (0) 2023.06.11
htons / inet_addr  (0) 2023.03.31
DHCP  (0) 2023.03.23

댓글