浅野 貴紀
asano****@yahoo*****
2015年 2月 10日 (火) 02:04:28 JST
はじめまして。浅野貴紀と言います。 本当に1バイトだけです^^。 端末で「man freeaddrinfo」とした場合にサンプルが表示されますが、 「 ~省略~ データグラムの echo サーバとクライアントである。 サーバのプログラム #include <sys/types.h> #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <string.h> #include <sys/socket.h> #include <netdb.h> #define BUF_SIZE 500 int main(int argc, char *argv[]) { struct addrinfo hints; struct addrinfo *result, *rp; int sfd, s; struct sockaddr_storage peer_addr; socklen_t peer_addr_len; ssize_t nread; char buf[BUF_SIZE]; if (argc != 2) { fprintf(stderr, "Usage: %s port\n", argv[0]); exit(EXIT_FAILURE); } ~省略~ 」 の最後のif文について、条件式が、「if (argc != 2) {」となっていますが、 「if (argc != 3) {」の間違いではないかと思われるので、ご確認をよろしくお願いいたします。 たぶん、必要な引数を実行可能ファイルに渡してコードを動かそうとしても、動かなかった……と思う。 (発見したのが随分前のため、自信無いです……すみません。) 環境はCentOS7 x64です。 本来は英語版にもミスが無いかどうかなどを調べて、 間違いがある場合は、そちらにもメールを送るべきなのかもしれませんが、 Linux系は初めてなもので、まだ右も左も分から無いため、日本語部分だけで勘弁させて下さい。 よろしくお願い致します。