Cで小さなUDPサーバー/クライアントアプリケーションを実装しようとしていますが、サーバー側で2つのエラーが発生しました: recvfrom:不正なアドレス&& sendto:プロトコルでサポートされていないアドレスファミリ。私は間違いを検索して答えをグーグルで検索しましたが、残念ながら、それらはあまり役に立ちませんでした...多分私は間違った方法でパラメータをキャストしていて、それを取得していません。ヒントを教えていただければ幸いです:)。
#include <unistd.h>
#include <ctype.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <arpa/inet.h>
#include <errno.h>
#define BUFFSIZE 256
#define IP "127.0.0.1"
#define PORT 7755
int main(void){
  int socket_fd = socket(AF_INET, SOCK_DGRAM, 0);
  char buffer[1] = "s";
  struct sockaddr_in src_addr;
  struct sockaddr_in dest_addr;
  src_addr.sin_family = AF_INET;
  src_addr.sin_port = htons(PORT);
  src_addr.sin_addr.s_addr = inet_addr(IP);
  if(socket_fd==-1)
    perror("socket");
  if(bind(socket_fd, (struct sockaddr*)&src_addr, sizeof(src_addr))==-1)
    perror("bind");
  if(recvfrom(socket_fd, buffer, 2, 0, (struct sockaddr*)&dest_addr, (unsigned int *)sizeof(struct sockaddr_in))==-1)
    perror("recvfrom");
  if(sendto(socket_fd, buffer, 2, 0,(struct sockaddr*)&dest_addr, sizeof(dest_addr))==-1)
    perror("sendto");
  if(close(socket_fd)==-1)
    perror("close");
  return 0;
}