3 つの UDP ソケットの設定についてサポートが必要です。ソケットは、61000、61001、および 61002 でなければならないリモート ポート番号の一部と同じです。データを送受信するために select 関数で使用する必要があるため、このソケットを設定する必要があります。
多くの方法を試しましたが、適切に機能するものはありませんでした。これが 1 つのソケットを設定する通常の手順であることはわかっています。
int set_socket() {
/* get a datagram socket */
sock = socket(AF_INET, SOCK_DGRAM, 0);
if (sock == SOCKET_ERROR) {
printf ("socket() failed, Err: %d \"%s\"\n", errno,strerror(errno));
exit(1);
}
OptVal = 1;
ris = setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, (char *)&OptVal, sizeof(OptVal));
if (ris == SOCKET_ERROR) {
printf ("setsockopt() SO_REUSEADDR failed, Err: %d \"%s\"\n", errno,strerror(errno));
exit(1);
}
/* name the socket */
Local.sin_family = AF_INET;
Local.sin_addr.s_addr = htonl(INADDR_ANY);
Local.sin_port = htons(local_port_number_UDP);
ris = bind(sock, (struct sockaddr*) &Local, sizeof(Local));
if (ris == SOCKET_ERROR) {
printf ("bind() failed, Err: %d \\n",errno);
exit(1);
}
/* assign our destination address */
To.sin_family = AF_INET;
To.sin_addr.s_addr = inet_addr(string_remote_ip_address_UDP);
To.sin_port = htons(remote_port_number_UDP);
}
3 つのソケットすべてに別のリモート ポート番号を設定するにはどうすればよいですか? struct
ソケットごとに異なる (Local と To) を使用する必要がありますか?
ありがとう、そして私の下手な英語でごめんなさい。