第8章 基本UDP套接口编程
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套接口编程相关推荐
- UNIX网络编程读书笔记:套接口选项
概述 有很多方法来获取和设置影响套接口的选项: getsockopt和setsockopt函数 fcntl函数 ioctl函数 getsockopt和setsockopt函数 这两个函数仅用于套接口. ...
- 网络编程学习笔记(ICMPv6和IPv6套接口选项)
ICMPv6套接口选项级别为IPPROTO_ICMPV6 ICMP6_FILTER: 获取和设置一个icmp6_filter结构,这指明256个可能的ICMPv6消息类型中哪一个传递给在原始套接口上的 ...
- 网络编程学习笔记(IPv4套接口选项)
这些选项级别为IPPROTO_IP IP_HDRINCL: 如果此选项给一个原始IP套接口,必须为所有发判定以此原始套接口上的数据报构造自己的IP头部.一般情况下,内核为发送到原始套接口上的数据报构造 ...
- 网络编程学习笔记(基本套接口选项)
SO_BROADCAST套接口选项: 此选项使能或禁止进程发送广播消息的能力.只有数据报套接口支持广播,并且还必须是在支持广播消息的网络上(例如以太网.令牌网).不能在一个点对点链路上进行广播. SO ...
- 基于Socket的UDP和TCP编程介绍
一.概述 TCP(传输控制协议)和UDP(用户数据报协议是网络体系结构TCP/IP模型中传输层一层中的两个不同的通信协议. TCP:传输控制协议,一种面向连接的协议,给用户进程提供可靠的全双工的字节流 ...
- 基于Socket的UDP和TCP编程介绍-转
一.概述 TCP(传输控制协议)和UDP(用户数据报协议是网络体系结构TCP/IP模型中传输层一层中的两个不同的通信协议. TCP:传输控制协议,一种面向连接的协议,给用户进程提供可靠的全双工的字节流 ...
- UNP Chapter 25 - 原始套接口
25.1. 概述 原始套接口提供以下三种TCP及UDP套接口一般不提供的功能. 1. 使用原始套接口可以读写ICMPv4,IGMPv4,ICMPv6分组.例如:Ping程序,就使用原始套接口发送ICM ...
- UNP学习笔记3——基本UDP套接字编程
1 概述 TCP和UDP网络编程存在一些本质的差异,主要是由于传输层的差别:UDP是无连接的不可靠的数据报协议,而TCP是面向连接的字节流协议. 下图是典型的UDP客户端和服务器之间的通信流程.客户不 ...
- 计网实验原理-TCP/UDP套接字编程
计算机网络自顶向下结构--第7版 第二章实验,套接字编程 代码运行环境:window10,python 3.8.对于书上代码略作修改. 进程与计算机网络之间的接口 多数应用程序是由通信进程队组成的,每 ...
最新文章
- 详细解读 Prometheus 的指标类型
- spring bean中scope=prototype“的作用
- [论文浅析]ICLR2017 跨语言,跨任务,跨领域序列标注
- 为什么这么多烂代码?
- Spring Boot的每个模块包详解
- xshell和xftp免费版下载地址
- java beanshell_Java脚本-BeanShell
- excel表转成PDF文档
- 常见英语人名及其音标和中文翻译
- 图样图森破:认识WiFi以后
- JAVA图片加水印(电子奖状填充名字)
- 计算机键入命令,Win7系统安装软件提示命令行语法错误键入“ 命令/?”怎么办...
- Jmeter-添加PerfMon (Servers Performance Monitoring),报错解决办法
- Android app后台服务在锁屏情况下一直运行的方法
- 用位运算来代替乘法、除法和取余的方式
- 2023年华为认证H12-821、H12-831考试指南(包括学习视频和题库)
- global.fun.php
- recsys2022比赛baseline - 基于ItemCF
- 忘记linux里mysql账号密码忘记_Linux下MySQL忘记root用户密码
- 盘点2013:21款最优秀的开源数据库
热门文章
- python标准库介绍——4 string模块详解
- 《易学C++(第2版)》——1.4 C++能够做些什么
- XMLHttpRequest cannot load解决方案
- java性能调优03
- 【RAC】使用一条“ps”命令获取Linux环境下全部RAC集群进程信息
- 小米开源监控系统OpenFalcon应对高并发7种手段
- bootstrap与360浏览器不兼容问题
- C#判断文件是否存在方法
- 武林外传辅助工具详细制作过程[第二篇:查看数据]
- Crash常见异常总结