LAN に 2 台のマシン A と B があり、A に UDP クライアントがあり、B に UDP サーバーがあります。
for(;;){
n = recvfrom(sockfd, mesg, 10000, 0, (struct sockaddr *)&cliaddr, &len);
....}
UDP クライアントが最初のデータグラム
を送信するときに、データグラム データ ペイロードをmesg
正しく取得できます
が、構造cliaddr
が満たされていない
ことbzero(&cliaddr, sizeof(cliaddr));
に気付き
ましgdb
た 。
$1 = {sin_family = 0, sin_port = 0, sin_addr = {s_addr = 0}, sin_zero =
"\000\000\000\000\000\000\000"}
最初のデータグラムが受信されたとき、recvfrom() が構造を満たさない理由は何cliaddr
ですか?
後続のデータグラムについては、有効な情報を取得できます。