accept()返回fd和listen fd的端口是一样吗
2013-07-31 18:51
162 查看
一个socket是由一个五元组来唯一标示的,即(协议,server_ip, server_port, client_ip, client_port)。只要该五元组中任何一个值不同,则其代表的socket就不同。这里忽略协议的区别,在同一协议的基础上,服务器端的listen socket的端口可以看成(server_ip, server_port, ***, ***),其中***是通配符,它跟任何一个client_ip, client_port值都不同,可以简单看成是(0,0)对,当然实现不是这样的。这样在服务器端accept之后,返回的连接socket的四元组就是(server_ip,
server_port, client_ip, client_port),这里的client_ip,client_port因连接的客户端的不同而不同。所以accept返回的socket和listen socket是不同的,不同之处就在于四元组中的客户端ip和port,而服务器端的server_ip和server_port还是相同的,也就是accpet()函数返回的新的socket描述符的端口和listen端口是一样的。可以使用getsockname()函数来查看它们之间的不同。
server_port, client_ip, client_port),这里的client_ip,client_port因连接的客户端的不同而不同。所以accept返回的socket和listen socket是不同的,不同之处就在于四元组中的客户端ip和port,而服务器端的server_ip和server_port还是相同的,也就是accpet()函数返回的新的socket描述符的端口和listen端口是一样的。可以使用getsockname()函数来查看它们之间的不同。
相关文章推荐
- accept返回的socket的端口号和连接socket一样的!!! socket绑定信息结构
- accept()返回的套接字绑定哪个端口 新旧套接字的联系
- accept返回的socket的端口号和连接socket一样的!!! socket绑定信息结构
- accept()返回的套接字绑定哪个端口 新旧套接字的联系
- winsock accept立即返回,GetLastError得到10014错误
- 设置Accept-Encoding为gzip,deflate,返回的网页是乱码
- httpclient访问网站时设置Accept-Encoding为gzip,deflate返回的结果为乱码的问题
- iOS UITableView-FDTemplateLayoutCell框架 cell重叠 高度返回0.5问题解决
- SOCKET accept后端口与listen绑定端口相关备注
- java中函数覆盖(即重写override),子类的返回类型一定要和父类一样吗?
- 编写一个通讯录,功能与以前的诺基亚手机一样,可以通过键盘进行箭头的移动,回车进入选项,用“W”键代表手机手机左键,“backspace”键代表返回上一级。能够实现基本的人性化的增删改查及文件的导入导出
- winsock accept立即返回,GetLastError得到10014错误
- IOS UITableView-FDTemplateLayoutCell框架高度返回问题
- socket accept后的fd是否占用新端口
- Android app里用到qq分享返回的时候出现两个一样的应用程序让选择
- TCP socket的accept/connect成功返回可是对端却不辞而别
- 使用Accept的完成端口
- 给定函数返回01概率为p和1-p,根据这个函数构造函数使得返回01的概率一样
- 采用select方法探测端口时,如果把listen的socket也加到fd_set队列里,那么connect事件也可以感知到
- Apache能否像IIS一样配置多端口多网站呀?……当然能啦,而且比IIS强多了!