0

サーバーソケットプログラミングの書き込み中にsocketfdをIPアドレスにバインドする必要がありますか? つまり、bind システム コールを呼び出さずにソケット プログラミングを作成することは可能ですか? ソケットのように -> リッスン -> 受け入れる -> 読み取り/書き込み/ -> 閉じる。

4

2 に答える 2

2

ソケットは、ポートまたは UNIX ソケット ファイルにバインドする必要があります。ということyou don't want to define port number for listenですか?次に、ポート番号 0 をバインドします。ランダムなポートで動作します。

memset((char *) &reader_addr, 0, sizeof(reader_addr));
reader_addr.sin_family = PF_INET;
reader_addr.sin_addr.s_addr = htonl(INADDR_ANY);
reader_addr.sin_port = 0;

if (bind(server_fd, (struct sockaddr *)&reader_addr, sizeof(reader_addr)) < 0) {
    perror("reader: bind");
    exit(1);
}
于 2013-06-25T03:52:14.240 に答える