11

ポートPでリモートホストに接続するソースコードを参照しています(TCPを使用)。接続の呼び出しの後(成功したと仮定して)、接続のクライアントポート(つまり、クライアントポート)を検出したいと思います。実際、私はopensshソースを参照しています。sshconnect.cには、timeout_connectを呼び出す関数ssh_connectがあります。リモートホストのIP、ポート、ローカルIPがありますが、接続が成功した後、ローカル(クライアント)ポートを知りたいです。

私は明確になっていると思います、そしてあなたの答えに感謝しますよろしくサプシ

4

2 に答える 2

17

クライアント ソケット ファイル記述子を getsockname に入力してみてください。

struct sockaddr_in local_address;
int addr_size = sizeof(local_address);
getsockname(fd, &local_address, &addr_size);

次に、IP とポートのアドレス構造を分離できます。

于 2010-03-02T01:35:08.040 に答える