send() を使用してデータを 2 つの異なるソケットに同時に送信する必要があるため、ソケット udp ファイル記述子へのポインターを管理できるかどうか疑問に思っていました。
2 つのソケット (socket() setsocket() bind() connect()...) を作成する関数と、ソケットを変更する別の関数があります (1 つの条件が true の場合、この部分は書きません)。
void set_socket(){
socket00 = socket(AF_INET, SOCK_DGRAM, 0);
socket01 = socket(AF_INET, SOCK_DGRAM, 0);
...
setsocket();
setsocket();
....
....
}
int change_socketfd (int fd) {
if (fd == socket01 ) {
return ( socket00 );
}
else if (fd == socket00 ) {
return ( socket01 );
}
}
このようなポインターを使用できますか?
int *psock;
psock=&change_socketfd(socket00);
ris = send(*psock, datagram, sizeof(*datagram)+1 , 0);
私が必要としているのは、socketfd を動的に変更することですが、私のコードではセグメンテーション エラーが発生するため、この方法が正しいかどうかはわかりません。提案してくれてありがとう