1

recvfrom() を実行すると、受信したメッセージは正しいのに、送信元アドレスがまったくごちゃごちゃになっているのはなぜですか?

char traid_messageR[MAXDATASIZE];
socklen_t addlen;
struct sockaddr_in source_addr;
if((numbytes=recvfrom(udp_sockfd, traid_messageR, 256, 0, (struct sockaddr*)&source_addr, &addlen)) == -1)
{
    perror("recvfrom");
    exit(1);
}

結果は次のようになります。

(gdb) print source_addr
$1 = {sin_family = 61428, sin_port = 42, sin_addr = {s_addr = 49809}, 
  sin_zero = "\234\352\377\277\310\352\377\277"}

49809 はポート番号のように見えますが、これはこの受信機のポート番号です...これがなぜなのかわかる人はいますか?どうもありがとうございました。 ,%fds)、次に上記のコードを実行しますが、影響はありますか?

4

2 に答える 2