UDP - Gakgu/Gakgu.github.io GitHub Wiki
UDP(User Datagram Protocal)
-
์์ ์ธก(server)
- ์์ ์์ผ ์์ฑ
- ์์ ์์ผ ์ฃผ์ ์์ฑ
- ์์ ์์ผ์ ์์ ์์ผ ์ฃผ์๋ฅผ bind()
- ์์
- ์ข ๋ฃ
-
์ก์ ์ธก(Client)
- ์ก์ ์์ผ ์์ฑ
- ์ก์ ์์ผ ์ฃผ์ ์์ฑ
- ์ก์
- ์ข ๋ฃ
#include <sys/socket.h>
#include <sys/types.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <arpa/inet.h>
#define BUFFER_SIZE 512
int main()
{
// ์๋ฒ ์์ผ ์์ฑ
int sock = socket(PF_INET, SOCK_DGRAM, 0);
// ์๋ฒ ์์ผ ์ฃผ์๋ฅผ ์์ฑ
struct sockaddr_in server_addr;
memset(&server_addr, 0, sizeof(server_addr));
server_addr.sin_family = PF_INET;
server_addr.sin_port = htons(1234);
server_addr.sin_addr.s_addr = htonl(INADDR_ANY); // or inet_addr("127.0.0.1");
// ์๋ฒ ์์ผ ์ฃผ์๋ฅผ ์์ผ์ bind()
bind(sock, (struct sockaddr*)&server_addr, sizeof(server_addr));
// ์์
while(1)
{
char buf[BUFFER_SIZE];
struct sockaddr_in client_addr;
socklen_t client_addr_size = sizeof(client_addr);
recvfrom(sock, buf, BUFFER_SIZE, 0, (struct sockaddr*)&client_addr, &client_addr_size);
printf("%s", buf);
}
// ์ข
๋ฃ
close(sock);
return 0;
}
#include <sys/socket.h>
#include <sys/types.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <arpa/inet.h>
#define BUFFER_SIZE 512
int main()
{
// ์๋ฒ ์์ผ ์์ฑ
int sock = socket(PF_INET, SOCK_DGRAM, 0);
// ์๋ฒ ์์ผ ์ฃผ์๋ฅผ ์์ฑ
struct sockaddr_in server_addr;
memset(&server_addr, 0, sizeof(server_addr));
server_addr.sin_family = PF_INET;
server_addr.sin_port = htons(1234);
server_addr.sin_addr.s_addr = htonl(INADDR_ANY); // or inet_addr("127.0.0.1");
// ์ก์
while(1)
{
char buf[BUFFER_SIZE] = "asdf";
sendto(sock, buf, BUFFER_SIZE, 0, (struct sockaddr*)&server_addr, sizeof(server_addr));
}
// ์ข
๋ฃ
close(sock);
return 0;
}