TCP: 面向连接的,提供可靠的字节流。
UDP: 无连接,不可靠的数据报协议。

UDP: DNS 域名系统, NFS 网络文件系统, SNMP 简单网络管理协议。

#include <sys/socket.h>
ssize_t recvfrom(int sockfd, void *buff, size_t nbytes, int flags,
             struct sockaddr *from, socklen_t *addrlen);
返回: OK -> 读写字节数, ERROR -> -1。
sockfd: 套接口描述字。
buff: 指向写出缓冲区的指针。
nbytes: 缓冲区的大小。
flags:
from: 指向协议地址的指针。
addrlen: 指针 to 指向的结构的长度。

#include <sys/socket.h>
ssize_t sendto(int sockfd, const void *buff, size_t nbytes, int flags,
            const struct sockaddr *to, socklen_t addrlen);
返回: OK -> 读写字节数, ERROR -> -1。
sockfd: 套接口描述字。
buff: 指向读入缓冲区的指针。
nbytes: 缓冲区的大小。
flags:
to: 指向协议地址的指针。
addrlen: 指针 to 指向的结构的长度。

对于数据报协议, recvfrom 返回 0 值也是可行的: 它不表示对方已关闭了连接,这于TCP套接口的 read 返回 0 的情况不同。由于UDP是无连接的,这就没有诸如关闭UDP连接之类的事情。

recvfrom 和 sendto 可用于TCP,尽管一般来说没有理由这么做。
一般来讲,TCP服务器是并发的,而UDP服务器是迭代的。

弱端系统模型: 大多数IP实现接收目的地址为本主机任一IP地址的数据报,而不管数据报到达的接口。
强端系统模型: 只接受到达接口与目的地址一致的数据报。

转载于:https://www.cnblogs.com/learne/archive/2009/08/12/1544669.html

第8章 基本UDP套接口编程相关推荐

  1. UNIX网络编程读书笔记:套接口选项

    概述 有很多方法来获取和设置影响套接口的选项: getsockopt和setsockopt函数 fcntl函数 ioctl函数 getsockopt和setsockopt函数 这两个函数仅用于套接口. ...

  2. 网络编程学习笔记(ICMPv6和IPv6套接口选项)

    ICMPv6套接口选项级别为IPPROTO_ICMPV6 ICMP6_FILTER: 获取和设置一个icmp6_filter结构,这指明256个可能的ICMPv6消息类型中哪一个传递给在原始套接口上的 ...

  3. 网络编程学习笔记(IPv4套接口选项)

    这些选项级别为IPPROTO_IP IP_HDRINCL: 如果此选项给一个原始IP套接口,必须为所有发判定以此原始套接口上的数据报构造自己的IP头部.一般情况下,内核为发送到原始套接口上的数据报构造 ...

  4. 网络编程学习笔记(基本套接口选项)

    SO_BROADCAST套接口选项: 此选项使能或禁止进程发送广播消息的能力.只有数据报套接口支持广播,并且还必须是在支持广播消息的网络上(例如以太网.令牌网).不能在一个点对点链路上进行广播. SO ...

  5. 基于Socket的UDP和TCP编程介绍

    一.概述 TCP(传输控制协议)和UDP(用户数据报协议是网络体系结构TCP/IP模型中传输层一层中的两个不同的通信协议. TCP:传输控制协议,一种面向连接的协议,给用户进程提供可靠的全双工的字节流 ...

  6. 基于Socket的UDP和TCP编程介绍-转

    一.概述 TCP(传输控制协议)和UDP(用户数据报协议是网络体系结构TCP/IP模型中传输层一层中的两个不同的通信协议. TCP:传输控制协议,一种面向连接的协议,给用户进程提供可靠的全双工的字节流 ...

  7. UNP Chapter 25 - 原始套接口

    25.1. 概述 原始套接口提供以下三种TCP及UDP套接口一般不提供的功能. 1. 使用原始套接口可以读写ICMPv4,IGMPv4,ICMPv6分组.例如:Ping程序,就使用原始套接口发送ICM ...

  8. UNP学习笔记3——基本UDP套接字编程

    1 概述 TCP和UDP网络编程存在一些本质的差异,主要是由于传输层的差别:UDP是无连接的不可靠的数据报协议,而TCP是面向连接的字节流协议. 下图是典型的UDP客户端和服务器之间的通信流程.客户不 ...

  9. 计网实验原理-TCP/UDP套接字编程

    计算机网络自顶向下结构--第7版 第二章实验,套接字编程 代码运行环境:window10,python 3.8.对于书上代码略作修改. 进程与计算机网络之间的接口 多数应用程序是由通信进程队组成的,每 ...

最新文章

  1. 详细解读 Prometheus 的指标类型
  2. spring bean中scope=prototype“的作用
  3. [论文浅析]ICLR2017 跨语言,跨任务,跨领域序列标注
  4. 为什么这么多烂代码?
  5. Spring Boot的每个模块包详解
  6. xshell和xftp免费版下载地址
  7. java beanshell_Java脚本-BeanShell
  8. excel表转成PDF文档
  9. 常见英语人名及其音标和中文翻译
  10. 图样图森破:认识WiFi以后
  11. JAVA图片加水印(电子奖状填充名字)
  12. 计算机键入命令,Win7系统安装软件提示命令行语法错误键入“ 命令/?”怎么办...
  13. Jmeter-添加PerfMon (Servers Performance Monitoring),报错解决办法
  14. Android app后台服务在锁屏情况下一直运行的方法
  15. 用位运算来代替乘法、除法和取余的方式
  16. 2023年华为认证H12-821、H12-831考试指南(包括学习视频和题库)
  17. global.fun.php
  18. recsys2022比赛baseline - 基于ItemCF
  19. 忘记linux里mysql账号密码忘记_Linux下MySQL忘记root用户密码
  20. 盘点2013:21款最优秀的开源数据库

热门文章

  1. python标准库介绍——4 string模块详解
  2. 《易学C++(第2版)》——1.4 C++能够做些什么
  3. XMLHttpRequest cannot load解决方案
  4. java性能调优03
  5. 【RAC】使用一条“ps”命令获取Linux环境下全部RAC集群进程信息
  6. 小米开源监控系统OpenFalcon应对高并发7种手段
  7. bootstrap与360浏览器不兼容问题
  8. C#判断文件是否存在方法
  9. 武林外传辅助工具详细制作过程[第二篇:查看数据]
  10. Crash常见异常总结