【C言語】ソケット通信について - 2
Q&A
ソケット通信について説明された次のサイトにおける、下部あたりに記載されたプログラムについて質問です。
https://daeudaeu.com/socket/#:~:text=%E7%B5%82%E4%BA%86%E3%81%97%E3%81%BE%E3%81%99%E3%80%82-,%E3%82%BD%E3%82%B1%E3%83%83%E3%83%88%E9%80%9A%E4%BF%A1%E3%81%AE%E7%B0%A1%E5%8D%98%E3%81%AA%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E4%BE%8B,-%E3%81%A7%E3%81%AF%E3%80%81%E3%81%93%E3%81%93%E3%81%BE%E3%81%A7
プログラムの内容をよく考えていると、以下のコードのところで引っかかりました。
if (bind(w_addr, (const struct sockaddr *)&a_addr, sizeof(a_addr)) == -1) {
printf("bind error\n");
close(w_addr);
return -1;
}
if (listen(w_addr, 3) == -1) {
printf("listen error\n");
close(w_addr);
return -1;
}
if (connect(sock, (struct sockaddr*)&addr, sizeof(struct sockaddr_in)) == -1) {
printf("connect error\n");
close(sock);
return -1;
}
3つとも、いきなりif文に始まってif文で終わっているのです。if文1個だけで。しかも、if文内の処理文にはエラー時のパターンしか見受けられません。これでは、エラーなしに正常に実行されたらbindやlisten、connectは飛ばされてしまうのではないでしょうか?