getsockname()

getsockname( m_server,  ( struct sockaddr* )&sockaddr_name,  &namelen);

getpeername( m_server,  ( struct sockaddr* )&sockaddr_name,  &namelen);

getsockname(client_user,  ( struct sockaddr* )&sockaddr_name,  &namelen);

getpeername( client_user,  ( struct sockaddr* )&sockaddr_name,  &namelen);

时间: 2024-10-15 12:52:30

getsockname()的相关文章

关于getsockname()/getpeername()函数第一次被调用得到0.0.0.0结果的说明

最近阅读UNIX网络编程第四章时,书本末尾介绍了两个函数getsockname()和getpeername(),可以用于获取服务器端和客户端的IP地址与端口,原本很简单的两个函数,过一眼即明白函数的用法,但在实际编程测试中,却出现了一个让人意外的结果,这两个函数在第一个客户连接时解析出的IP地址和端口全部为0,出乎我的期望.而在后面的客户连接时,打印出的IP地址和端口却是正确的. 下面先给出客户端和服务端的代码: 客户端: #include <netinet/in.h> #include &l

getsockname函数与getpeername函数的使用

getsockname和getpeername函数 getsockname函数用于获取与某个套接字关联的本地协议地址 getpeername函数用于获取与某个套接字关联的外地协议地址 定义如下: #include<sys/socket.h> int getsockname(int sockfd, struct sockaddr *localaddr, socklen_t *addrlen); int getpeername(int sockfd, struct sockaddr *peerad

getsockname和getpeername函数

这2个函数或者返回与某个套接字关联的本地协议地址(getsockname),或者返回与某个套接字关联的外地协议地址(getpeername) int getsockname(int sockfd, struct sockaddr* localaddr, socklen_t * addrlen); int getpeername(int sockfd, struct sockaddr * peeraddr, socklen_t * addrlen); 这2个函数的最后一个参数都是值-结果参数,这就

getsockname()和getpeername()

对于server端: 以端口为通配符方式bind:对于服务器,bind(0,ip),则调用bind函数之后,就可以调用getsockname获取服务器得到的本地端口号 以ip地址为通配地址bind,只有accept返回之后,调用getsockname(connfd,......)才会返回服务器得到的本地ip地址 对于client端: 由于不绑定bind,所以当connect()函数成功之后(完成三次握手),可以调用getsockname可以得到本地端口号和ip地址 getpeername():

利用 getsockname 和 getpeername 来获取某一个链接的本地地址和远端地址

在两台计算机上建立一个网络连接,需要五个要素:本机地址 本机端口 协议类型 远端端口 远端地址.那么如何从一个建立好的连接上获取这些信息呢.就需要用到 getsockname  和 getpeername 这两个函数. 但前提是要在建立好的连接上. 作为客户端,要在正确调用connect()之后,才能使用这两个函数 作为服务端,要在正确调用accept()之后,才能使用这两个函数 以下为测试代码, windows/linux 下均可编译运行. #include <stdint.h> #incl

UNIX网络编程——getsockname和getpeername函数

UNIX网络编程——getsockname和getpeername函数 来源:网络转载   http://www.educity.cn/linux/1241293.html 这两个函数或者返回与某个套接字关联的本地协议地址(getsockname),或者返回与某个套接字关联的外地协议地址即得到对方的地址(getpeername). #include <sys/socket.h> int getsockname(int sockfd,struct sockaddr* localaddr,sock

套接字之 getsockname &amp;&amp; getpeername

getsockname-获取本地地址:比如,在绑定的时候设置端口号为0由系统自动选择端口绑定,或者使用了INADDR_ANY通配所有地址的情况下,后面需要用到具体的地址和端口,就可以用getsockname获取地址信息: getpeername-获取建立连接的对端的地址和端口: 下面为源码分析: 1 /* 2 * Get the local address ('name') of a socket object. Move the obtained 3 * name to user space.

Python之路42-socket介绍及简单例子

socket对数据的底层收.发做了封装 实现通信要通过IP+port 一个socket服务端和客户端实现的伪代码 # 发送端 # import socket # socket.TCP/IP # connect(a.ip,a.port) # socket.send("hello") # socket.recv() # socket.close() # 接收端 # import socket # socket.TCP/IP # listen(0.0.0.0,6969) # waiting(

学习python必知的socket知识

ocket基础 写个自己的一句话,记得在封装传递的时候用上getattr等 socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,应用程序通常通过"套接字"向网络发出请求或者应答网络请求. Socket技术起源于Unix,而Unix/Linux基本哲学之一就是"一切皆文件",对于文件用[打开][读写][关闭]模式来操作.socket就是该模式的一个实现,socket即是一种特殊的文件,一些socket函数就是对其进行的操作