博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
getsockname和getpeername函数
阅读量:6034 次
发布时间:2019-06-20

本文共 824 字,大约阅读时间需要 2 分钟。

这2个函数或者返回与某个套接字关联的本地协议地址(getsockname),或者返回与某个套接字关联的外地协议地址(getpeername)

int getsockname(int sockfd, struct sockaddr* localaddr, socklen_t * addrlen);

int getpeername(int sockfd, struct sockaddr * peeraddr, socklen_t * addrlen);

这2个函数的最后一个参数都是值-结果参数,这就是说,这2个函数都得装填由localaddr和peeraddr指针所指的套接字地址结构

 

需要这2个函数的理由:

1)在一个没有调用bind的TCP客户上,connect成功返回后,getsockname用于返回由内核赋予该连接的本地IP地址和本地端口号

2)在以端口号0调用bind后,getsockname用于返回内核赋予的本地端口号

3)getsockname可用于获取某个套接字的地址簇

4)在一个以通配IP地址调用bind的服务器上,与某个客户的连接一旦建立,getsockname就可以用于返回由内核赋予该连接的本地IP地址

在这样的调用中,套接字描述符参数必须是已连接的本地IP,而不是监听套接字的描述符

 

5)当一个服务器是由调用accept的某个进程通过调用exec执行程序时,它能够获取客户身份的唯一途径就是调用getpeername

 

 

所有客户和服务器都是从调用socket开始,它返回一个套接字描述符

客户随后调用connect

服务器则调用bind、listen、accept

套接字通常使用标准的close函数关闭

大多数TCP服务器都是并发的

它们为每个待处理的客户连接调用fork派生一个子进程

大多数UDP服务器是迭代的

 

转载于:https://www.cnblogs.com/ailx10/p/5350545.html

你可能感兴趣的文章
UIButton的titleLabel不同状态字体判断
查看>>
我的友情链接
查看>>
杨泽业:wordpress在Nginx/Apache/IIS中的伪静态规则
查看>>
Python 中使用 MongoDB 存储爬虫数据
查看>>
WindowsServer 2008 AD搭建FTP隔离用户
查看>>
lmdb
查看>>
大文件如何传输,大文件的传输方式有哪些?
查看>>
docker的持久化存储和共享存储和网络架构
查看>>
撕掉普通程序员的标签,这才是真正的大数据工程师!
查看>>
Windows下安装Sqlmap过程及遇到的问题
查看>>
BSD常见分支
查看>>
开挂了!这5个Word技巧真的是超级实用,值得收藏!
查看>>
三分钟了解实时流式大数据分析
查看>>
留与后人一段面试的总结
查看>>
Spring基于XML方式配置事务
查看>>
T-MBA学习营 | 寒窗十数载,我们原来并不会学习?
查看>>
log4j.properties模板
查看>>
Linux:信号(上)
查看>>
vmware虚拟化无法迁移虚拟机
查看>>
SQL UPDATE实现多表更新
查看>>