sock.getsockname() and sock.getpeername() 的区别

Author Avatar
doubledna 2017 年 03 月 06 日

<h2> 应用层 </h2>
 

int getsockname(int s, struct sockaddr name, socklen_t namelen);

Get the current name for the specified socket.

获取本地套接口的名字,包括它的 IP 和端口。

 

int getpeername(int s, struct sockaddr name, socklen_t namelen);

Get the name of connected peer socket.

获取远程套接口的名字,包括它的 IP 和端口。

 

getsockname() 在指定的套接口绑定地址和端口后才能调用,即服务器在 bind() 后可调用,

客户端在 bind() 或 connect() 之后可调用。getpeername() 在连接建立之后才可调用。