当前位置: 技术问答>linux和unix
这种情况可以获取SOCKET IP吗?
来源: 互联网 发布时间:2015-08-17
本文导语: 当一个连接的建立的时候,在accept返回后,可以获得CLIENT的IP和端口 但是如果只知道一个SOCKET 描述符 如何获取这个SOCKET的CLIENT端IP和端口? WINDOWS下有getpeername可以获取。。。 LINUX办法有没有办法? | ...
当一个连接的建立的时候,在accept返回后,可以获得CLIENT的IP和端口
但是如果只知道一个SOCKET 描述符
如何获取这个SOCKET的CLIENT端IP和端口?
WINDOWS下有getpeername可以获取。。。
LINUX办法有没有办法?
但是如果只知道一个SOCKET 描述符
如何获取这个SOCKET的CLIENT端IP和端口?
WINDOWS下有getpeername可以获取。。。
LINUX办法有没有办法?
|
GETPEERNAME(2) Linux Programmer's Manual GETPEERNAME(2)
NAME
getpeername - get name of connected peer socket
SYNOPSIS
#include
int getpeername(int s, struct sockaddr *name, socklen_t *namelen);
DESCRIPTION
Getpeername returns the name of the peer connected to socket s. The
namelen parameter should be initialized to indicate the amount of space
pointed to by name. On return it contains the actual size of the name
returned (in bytes). The name is truncated if the buffer provided is
too small.
RETURN VALUE
On success, zero is returned. On error, -1 is returned, and errno is
set appropriately.
ERRORS
EBADF The argument s is not a valid descriptor.
ENOTSOCK
The argument s is a file, not a socket.
ENOTCONN
The socket is not connected.
ENOBUFS
Insufficient resources were available in the system to perform
the operation.
EFAULT The name parameter points to memory not in a valid part of the
process address space.
NAME
getpeername - get name of connected peer socket
SYNOPSIS
#include
int getpeername(int s, struct sockaddr *name, socklen_t *namelen);
DESCRIPTION
Getpeername returns the name of the peer connected to socket s. The
namelen parameter should be initialized to indicate the amount of space
pointed to by name. On return it contains the actual size of the name
returned (in bytes). The name is truncated if the buffer provided is
too small.
RETURN VALUE
On success, zero is returned. On error, -1 is returned, and errno is
set appropriately.
ERRORS
EBADF The argument s is not a valid descriptor.
ENOTSOCK
The argument s is a file, not a socket.
ENOTCONN
The socket is not connected.
ENOBUFS
Insufficient resources were available in the system to perform
the operation.
EFAULT The name parameter points to memory not in a valid part of the
process address space.