C言語でUDP通信を実現する方法を教えてください
C言語でUDP通信を行う場合、以下の手順で行うことができます。
- ソケット();
- データグラム型ソケット
- IPv4
int sockfd = socket(AF_INET, SOCK_DGRAM, 0);
- bindを結び付ける
- 任意の
struct sockaddr_in serverAddr;
serverAddr.sin_family = AF_INET;
serverAddr.sin_port = htons(port);
serverAddr.sin_addr.s_addr = INADDR_ANY;
bind(sockfd, (struct sockaddr *)&serverAddr, sizeof(serverAddr));
- recvfrom()
struct sockaddr_in clientAddr;
int clientAddrLen = sizeof(clientAddr);
char buffer[1024];
recvfrom(sockfd, buffer, sizeof(buffer), 0, (struct sockaddr *)&clientAddr, &clientAddrLen);
- sendto()
struct sockaddr_in clientAddr;
clientAddr.sin_family = AF_INET;
clientAddr.sin_port = htons(port);
clientAddr.sin_addr.s_addr = inet_addr(ipAddress);
char buffer[1024] = "Hello, UDP!";
sendto(sockfd, buffer, strlen(buffer), 0, (struct sockaddr *)&clientAddr, sizeof(clientAddr));
- 閉じる
close(sockfd);
上記は基本的UDP通信の実装手順です。具体的なニーズに応じて、適切に変更、拡張してください。