getsockname的使用
getsockname可以获得一个与socket相关的地址,服务器端可以通过它得到相关客户端地址,而客户端也可以得到当前已连接成功的socket的ip和端口。
第二种情况在客户端不进行bind而直接连接服务器时,而且客户端需要知道当前使用哪个ip进行通信时比较有用(如多网卡的情况)。
笔者分别通过TCP和UDP协议进行测试,测试结果表明:
对于TCP连接的情况,如果不进行bind指定IP和端口,那么调用connect连接成功后,使用getsockname可以正确获得当前正在通信的socket的IP和端口地址。
而对于UDP的情况,无论是在调用sendto之后还是收到服务器返回的信息之后调用,都无法得到正确的ip地址:使用getsockname得到ip为0,端口正确。
getsockname的使用相关推荐
- linux c 通过套接字获取本地远程地址信息 getsockname getpeername 简介
getsockname 函数用于获取与某个套接字关联的本地协议地址 getpeername 函数用于获取与某个套接字关联的外地协议地址 定义如下: #include<sys/socket.h& ...
- getsockname和getpeername
对于TCP服务器来说,如果设置的addr为INADDR_ANY,只有在accept后,用getsockname获得的者是本地分配的真实的ip,即针对已经连接的,而不是监听套接口. 用getpeerna ...
- getpeername函数与getsockname函数的介绍
getpeername函数用于获取与某个套接字关联的外地协议地址 getsockname函数用于获取与某个套接字关联的本地协议地址 函数定义如下: #include<sys/socket.h&g ...
- getsockname与getpeername用法与区别
getsockname与getpeername是返回套接口关联的本地协议地址和远程协议地址. int getsockname(int sockfd, struct sockaddr * localad ...
- getsockname和getpeername测试
在两台计算机上建立一个网络连接,需要五个要素:本机地址.本机端口.协议类型.远端端口.远端地址,那么如何从一个建立好的连接上获取这些信息呢?就需要用到 getsockname和getpeername这 ...
- getsockname函数与getpeername函数的使用
https://www.tuicool.com/articles/V3Avey getsockname和getpeername函数 getsockname函数用于获取与某个套接字关联的本地协议地址 ...
- getsockname与getpeername
getsockname与getpeername是返回套接口关联的本地协议地址和远程协议地址. int getsockname(int sockfd, struct sockaddr * localad ...
- watchman--no-pretty get-sockname returned with exit code 1 ERROR
React-Native Start的时候遇到的报错 今天在启动React-Native遇到报错信息 React packager ready. ERROR: Unknown option –no-p ...
- linux高性能网络编程,Linux高性能网络编程的介绍
Linux高性能网络编程 一.课程目标 本次课程深入讲解Linux下的socket编程,并以此为基础,着重讨论如何提高网络服务端应用的性能,通过本次课程的学习,学员将收获以下方面的成果: 熟练使用so ...
最新文章
- python笔记之正则表达式
- win10怎么放计算机在桌面,win10我的电脑怎么放在桌面
- android 编辑自定义可编辑表格,smart 框架 列表 可编辑表格
- 企业微信H5_集成消息解密类,消息推送Get及Post回调处理
- Apache-Flink深度解析-DataStream-Connectors之Kafka
- 编写高性能 Web 应用程序的10个技巧
- 15日直播预告丨SQL条件等价改写秘笈(主讲人:怀晓明)
- httpd glibc free() 报错解决一例
- 我的Linux系统开始学习的过程
- 图像转svg,及绘制svg图像
- Maven依赖中scope的含义
- python cprofile_Python Profilers 分析器
- 蝰蛇音效音效包_用数据科学分析音效迷艺术
- [状压dp] 炮兵阵地(状压dp)
- android httpclient gradle,Apache HttpClient Android (Gradle)
- 服务器封包协议号,DHCP协议的租约确认和封包格式
- 量化交易2-backtrader导入回测数据
- React组件抽象(一): mixin
- 机电信息杂志机电信息杂志社机电信息编辑部2022年第13期目录
- centos安装mysql_centos如何安装mysql
热门文章
- 京东刘海锋:过去十年架构领域最重要的三个变化
- 秒杀系统必须考虑的 3 个技术问题!
- 人民广场怎么走?地铁换乘算法的实现
- vue+elementui 中src动态加载图片的时候不起作用
- Android——使用纯java代码实现线性布局(通俗易懂)
- linux内核配置失败,petalinux配置内核出现下面错误
- setactive隐藏之后无法显示_WPS表格:如何显示和隐藏顶部工具栏?
- 正在CPU上运行的进程_进程的概念,系统资源分配的单元
- c语言fgetpos的参数,C语言fgetpos()函数:获得当前文件的读写指针(转)
- 数据中心迎来重大利好消息,工商业电价降低10%