getsockname可以获得一个与socket相关的地址,服务器端可以通过它得到相关客户端地址,而客户端也可以得到当前已连接成功的socket的ip和端口。

第二种情况在客户端不进行bind而直接连接服务器时,而且客户端需要知道当前使用哪个ip进行通信时比较有用(如多网卡的情况)。

笔者分别通过TCP和UDP协议进行测试,测试结果表明:
对于TCP连接的情况,如果不进行bind指定IP和端口,那么调用connect连接成功后,使用getsockname可以正确获得当前正在通信的socket的IP和端口地址。
而对于UDP的情况,无论是在调用sendto之后还是收到服务器返回的信息之后调用,都无法得到正确的ip地址:使用getsockname得到ip为0,端口正确。

getsockname的使用相关推荐

  1. linux c 通过套接字获取本地远程地址信息 getsockname getpeername 简介

    getsockname 函数用于获取与某个套接字关联的本地协议地址  getpeername 函数用于获取与某个套接字关联的外地协议地址 定义如下: #include<sys/socket.h& ...

  2. getsockname和getpeername

    对于TCP服务器来说,如果设置的addr为INADDR_ANY,只有在accept后,用getsockname获得的者是本地分配的真实的ip,即针对已经连接的,而不是监听套接口. 用getpeerna ...

  3. getpeername函数与getsockname函数的介绍

    getpeername函数用于获取与某个套接字关联的外地协议地址 getsockname函数用于获取与某个套接字关联的本地协议地址 函数定义如下: #include<sys/socket.h&g ...

  4. getsockname与getpeername用法与区别

    getsockname与getpeername是返回套接口关联的本地协议地址和远程协议地址. int getsockname(int sockfd, struct sockaddr * localad ...

  5. getsockname和getpeername测试

    在两台计算机上建立一个网络连接,需要五个要素:本机地址.本机端口.协议类型.远端端口.远端地址,那么如何从一个建立好的连接上获取这些信息呢?就需要用到 getsockname和getpeername这 ...

  6. getsockname函数与getpeername函数的使用

    https://www.tuicool.com/articles/V3Avey getsockname和getpeername函数 getsockname函数用于获取与某个套接字关联的本地协议地址  ...

  7. getsockname与getpeername

    getsockname与getpeername是返回套接口关联的本地协议地址和远程协议地址. int getsockname(int sockfd, struct sockaddr * localad ...

  8. watchman--no-pretty get-sockname returned with exit code 1 ERROR

    React-Native Start的时候遇到的报错 今天在启动React-Native遇到报错信息 React packager ready. ERROR: Unknown option –no-p ...

  9. linux高性能网络编程,Linux高性能网络编程的介绍

    Linux高性能网络编程 一.课程目标 本次课程深入讲解Linux下的socket编程,并以此为基础,着重讨论如何提高网络服务端应用的性能,通过本次课程的学习,学员将收获以下方面的成果: 熟练使用so ...

最新文章

  1. python笔记之正则表达式
  2. win10怎么放计算机在桌面,win10我的电脑怎么放在桌面
  3. android 编辑自定义可编辑表格,smart 框架 列表 可编辑表格
  4. 企业微信H5_集成消息解密类,消息推送Get及Post回调处理
  5. Apache-Flink深度解析-DataStream-Connectors之Kafka
  6. 编写高性能 Web 应用程序的10个技巧
  7. 15日直播预告丨SQL条件等价改写秘笈(主讲人:怀晓明)
  8. httpd glibc free() 报错解决一例
  9. 我的Linux系统开始学习的过程
  10. 图像转svg,及绘制svg图像
  11. Maven依赖中scope的含义
  12. python cprofile_Python Profilers 分析器
  13. 蝰蛇音效音效包_用数据科学分析音效迷艺术
  14. [状压dp] 炮兵阵地(状压dp)
  15. android httpclient gradle,Apache HttpClient Android (Gradle)
  16. 服务器封包协议号,DHCP协议的租约确认和封包格式
  17. 量化交易2-backtrader导入回测数据
  18. React组件抽象(一): mixin
  19. 机电信息杂志机电信息杂志社机电信息编辑部2022年第13期目录
  20. centos安装mysql_centos如何安装mysql

热门文章

  1. 京东刘海锋:过去十年架构领域最重要的三个变化
  2. 秒杀系统必须考虑的 3 个技术问题!
  3. 人民广场怎么走?地铁换乘算法的实现
  4. vue+elementui 中src动态加载图片的时候不起作用
  5. Android——使用纯java代码实现线性布局(通俗易懂)
  6. linux内核配置失败,petalinux配置内核出现下面错误
  7. setactive隐藏之后无法显示_WPS表格:如何显示和隐藏顶部工具栏?
  8. 正在CPU上运行的进程_进程的概念,系统资源分配的单元
  9. c语言fgetpos的参数,C语言fgetpos()函数:获得当前文件的读写指针(转)
  10. 数据中心迎来重大利好消息,工商业电价降低10%