Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在c中使用tcp套接字编程查找客户端ip地址_C_Sockets_Tcp - Fatal编程技术网

如何在c中使用tcp套接字编程查找客户端ip地址

如何在c中使用tcp套接字编程查找客户端ip地址,c,sockets,tcp,C,Sockets,Tcp,我正在尝试开发一个TCP服务器,因为服务器客户端在建立连接后正在与服务器连接。但是如何从该连接中找到ip地址呢。这里给出了示例代码 int connfd; int listenfd; struct sockaddr_in cliaddr; socklen_t clilen; connfd = accept(listenfd,(struct sockaddr *)&cliaddr,&clilen); 这不是确切的代码。但是现在我需要以字符串的形式找到客户端地址。accept()

我正在尝试开发一个TCP服务器,因为服务器客户端在建立连接后正在与服务器连接。但是如何从该连接中找到ip地址呢。这里给出了示例代码

int connfd;
int listenfd;
struct sockaddr_in cliaddr;
socklen_t clilen;

connfd = accept(listenfd,(struct sockaddr *)&cliaddr,&clilen);
这不是确切的代码。但是现在我需要以字符串的形式找到客户端地址。

accept()
分别在
sin\u addr
sin\u port
结构成员中填充的
sockaddr\u结构中提供客户端的远程IP地址和端口号。这两个值都是网络字节顺序的数值。您可以使用类似于
inet\u ntoa()
的函数将IP转换为人类可读的字符串,并使用
ntohs()
将端口号转换为字节顺序与调用机器匹配的整数,以便更自然地使用它

另请查看
getpeername()
getsockname()
函数。

accept()
分别在
sin\u addr
sin\u port
结构成员中,在它填充的
sockaddr\u in
结构中提供客户端的远程IP地址和端口号。这两个值都是网络字节顺序的数值。您可以使用类似于
inet\u ntoa()
的函数将IP转换为人类可读的字符串,并使用
ntohs()
将端口号转换为字节顺序与调用机器匹配的整数,以便更自然地使用它


另请查看
getpeername()
getsockname()
函数。

cliaddr是客户端结构sockaddr\u的结构变量

cliaddr.sin_addr.s_addr包含客户端的IP地址


内部地址(AF_inet,&(cliaddr.sin_addr)、clientAddr、CLADDR_LEN);将客户端的IP地址检索到字符串clientAddress中。

cliaddr是客户端的结构sockaddr\u in的结构变量

cliaddr.sin_addr.s_addr包含客户端的IP地址


内部地址(AF_inet,&(cliaddr.sin_addr)、clientAddr、CLADDR_LEN);将客户端的IP地址检索到字符串ClientAddress中。

您是否想查找您正在使用的任何类型?很抱歉,我没有找到您。我的意思是:阅读您正在使用的数据类型的文档。这里可能有一个提示…你有没有想过要查找你正在使用的任何类型?很抱歉,我没有理解你的意思。我的意思是:阅读你正在使用的数据类型的文档。这里可能有个暗示。。。