C言語でUDP通信を実現する方法を教えてください

C言語でUDP通信を行う場合、以下の手順で行うことができます。

  1. ソケット();
  2. データグラム型ソケット
  3. IPv4
int sockfd = socket(AF_INET, SOCK_DGRAM, 0);
  1. bindを結び付ける
  2. 任意の
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));
  1. recvfrom()
struct sockaddr_in clientAddr;
int clientAddrLen = sizeof(clientAddr);
char buffer[1024];
recvfrom(sockfd, buffer, sizeof(buffer), 0, (struct sockaddr *)&clientAddr, &clientAddrLen);
  1. 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));
  1. 閉じる
close(sockfd);

上記は基本的UDP通信の実装手順です。具体的なニーズに応じて、適切に変更、拡張してください。

bannerAds