UDP调用connect函数之前写过了,用的一个编程实例简单说明了一下,今天再更深入的学习一下。

之前博文地址:https://blog.csdn.net/ma2595162349/article/details/78785885

UDP调用connect函数主要有一下几个作用:

1.异步错误会返回到UDP套接字

2.每次调用sendto时,内核短暂连接套接字,发送数据包,然后断开套接字字,效率低

2.除了connect连接的该套接字外,服务端不会收到其它套接字的数据包

为啥UDP调用connect后会产生这样的效果呢?下面需要深入学习一下,UDP调用connect之后,客户端就去连接服务端,然后服务端的信息就会记录到与客户端套接字相关的PCB中,还有当前套接字发送了啥数据也会保存在PCB中。如果没有调用connect时不会保存连接信息的,而且数据在被发送之后就会丢弃记录也将消失。

connect成功之后,每当客户端发送数据到服务端时,这些记录就会被保存套接字相关的PCB中,如果发送时产生ICMP消息,则ICMP会根据UDP包头和套接字PCB的记录信息找到对应的套接字,并把错误返给它。

connect成功之后,连接已经建立,所以下次发送数据就不需要再次建立连接了。服务端套接字的PCB也保存了本客户端相关信息,所以其他客户端在发送数据给该服务端的时候,该服务端将不予接收。

UDP调用connect相关推荐

  1. UDP调用connect函数

    UDP是无连接的,在发送数据时需要指定对端的IP地址和端口,每次发送数据需要重新连接(多次发数据导致效率低下),而且异步错误不会返回到UDP套接字.这些在UDP调用connect函数之后都发生了改变. ...

  2. 网络编程学习笔记(UDP的connect函数)

    对于已连接的UDP套接口,发生了三个变化: 1.再也不能给输出操作指定目的IP地址和端口,也就是说,不能再调用 sendto,而使用send或者write.写到已连接UDP套接口上的任何东西都自动发送 ...

  3. udp 使用connect优点_nodejs源码分析第十九章 -- udp模块

    udp不是面向连接的协议,所以使用上会比tcp简单,他和tcp一样,使用四元组来标记通信的双方(单播的情况下).我们看看udp作为服务器和客户端的时候的流程. 1 在c语言中使用udp 1.1 服务器 ...

  4. udp 使用connect优点_一文搞懂TCP和UDP的区别

    TCP(Transmission Control Protocol,传输控制协议)和UDP(User Data Protocol ,用户数据报协议)都属于TCP/IP协议簇.TCP/IP协议集包括了超 ...

  5. Socket编程实践(12) --UDP编程基础

    UDP特点 无连接,面向数据报(基于消息,不会粘包)的数据传输服务; 不可靠(可能会丢包, 乱序, 重复), 但因此一般情况下UDP更加高效; UDP客户/服务器模型 UDP-API使用 #inclu ...

  6. UDP socket 编程学习笔记

    UDP编程的基本流程 UDP是无连接.不可靠的数据报协议,不同于TCP的面向连接的可靠数据流.UDP编程常见的应用包括:DNS域名服务器.NFS网络文件系统.SNMP简单网络管理协议. 客户端不必与服 ...

  7. 腾讯后台开发面试题--整理1

    可参照这篇博客一起看:http://blog.chinaunix.net/uid-29867011-id-4508083.html linux和os: netstat tcpdump ipcs ipc ...

  8. Linux后台开发应该具备技能

    Linux后台开发应该具备技能 一.linux和os: 1.命令:netstat tcpdump ipcs ipcrm  这四个命令的熟练掌握程度基本上能体现实际开发和调试程序的经验 2.cpu 内存 ...

  9. (转)Linux后台开发应该具备技能

    Linux后台开发应该具备技能 分类: 杂谈 2013-04-14 12:45 741人阅读 评论(0) 收藏 举报 Linux后台开发应该具备技能 一.linux和os: 1.命令:netstat ...

最新文章

  1. 打包python程序发布_Python代码的打包与发布详解
  2. win32程序测试键盘钩子
  3. Sorting a Three-Valued Sequence
  4. 现实世界的Windows Azure:采访Definition 6首席技术官Paul Hernacki
  5. iis新建一个html文件路径,C#使用DirectoryEntry操作IIS创建网站和虚拟路径
  6. 实施成功的ITIL变更管理的6个步骤
  7. 什么是mysql数据字典_数据字典是什么?
  8. 逆函数求导公式_反函数求导法则
  9. python下载迅雷资源助手_NAS下载丨比第三方好用100倍!威联通Download Station支持PT下载教程...
  10. excel制作特殊图表记录
  11. 【微生物相关数据库】NAR database issue
  12. 汇总15位身份证号和18位身份证号的区别
  13. 超维空间鸿蒙大宇,高维空间的存在不仅能够统一基本力,还为时空穿越提供了可能!...
  14. [bat] cmd命令进入用户登录界面和屏幕保护程序
  15. 2017最新苹果 APPLE ID注册流程
  16. 开源办公OA开发平台使用说明:用车管理应用
  17. 电脑c盘变红满了的清理方法
  18. 树与图在索引上的区别
  19. 基于Java技术的游戏项目_基于Java雷电游戏项目报告.doc
  20. 单因素方差分析和多因素方差分析的差异是什么?

热门文章

  1. 【运筹学】线性规划 人工变量法 ( 单纯形法总结 | 人工变量法引入 | 人工变量法原理分析 | 人工变量法案例 )
  2. 【组合数学】集合的排列组合问题示例 ( 排列 | 组合 | 圆排列 | 二项式定理 )
  3. BZOJ 3884 上帝与集合的正确用法 (欧拉定理)
  4. docker虚拟机动态扩展内存
  5. NOJ——1672剪绳子(博弈)
  6. 专家手把手教你写出高水平个人简历
  7. 函数式编程与REST的思考
  8. C/C++之变长数组(VLA)和可伸缩型数组成员
  9. 动态二维数组赋值及for循环遍历和toString遍历
  10. android蓝牙4.0BLE