2010-03-02 67 views
8

我正在瀏覽一些連接到端口P上的遠程主機的源代碼(使用TCP)。在調用連接之後(假設成功),我想要發現連接的客戶端端口(即客戶端端口)。 事實上,我正在瀏覽sshconnect.c中的openssh源碼,有一個調用timeout_connect的函數ssh_connect。我有遠程主機的IP,端口,本地IP但想知道成功連接後的本地(客戶端)端口。撥打電話後獲取客戶端端口(C)

我希望我已經清楚,謝謝你的答案 問候 Sapsi

回答

13

嘗試餵養客戶端套接字文件描述符getsockname,像這樣

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

然後你可以選擇分開IP和端口的地址結構。