![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
网络编程
文章平均质量分 80
aisxyz
这个作者很懒,什么都没留下…
展开
-
TCP/IP协议概况
下图是TCP/IP协议族中各协议与其使用程序的概况:[img]http://dl2.iteye.com/upload/attachment/0126/1911/f625ad2c-0f97-32f9-b9ed-425a7f7f3e08.png[/img] 图中同时展示了 IPv4 和 IPv6,从右向左查看,最右边的5个网络应用在使用 IPv6,随后的6个使用 ...原创 2017-04-08 05:30:14 · 122 阅读 · 0 评论 -
SCTP 套接字编程基础函数
SCTP 服务器可以使用 sctp_bindx 函数捆绑与所在主机系统相关 IP 地址的一个子集,而 TCP 服务器和 UDP 服务器要么捆绑所在主机的某个地址,要么捆绑所有地址,而不能捆绑这些地址的一个子集。[code="c"]#include int sctp_bindx(int sockfd, const struct sockaddr *addrs, int addrc...原创 2018-02-04 10:08:15 · 569 阅读 · 0 评论 -
SCTP 套接字选项
在[url=http://aisxyz.iteye.com/admin/blogs/2405269]获取和设置套接字选项[/url]一节中,我们了解到 SCTP 套接字支持多个选项,接下来就将对其一一介绍。 ** SCTP_ADAPTION_LAYER 在关联初始化期间,任何一个端点都可能指定一个适配层指示,该指示是一个 32 位的无符号整数,可由两端的应用进程用来协调...原创 2018-02-04 09:35:06 · 1933 阅读 · 0 评论 -
SCTP 套接字编程基础概念
SCTP 套接字分为一到一套接字和一到多套接字。提供一到一形式的目的是为了方便将现有 TCP 应用程序移植到 SCTP 上,其交互方式类似于 TCP 套接字,只是其建立连接时需要经过四路握手。一到一式 SCTP 套接字是一个类型为 SOCK_STREAM,协议为 IPPROTO_SCTP 的网际网套接字(即协议族为 AF_INET 或 AF_INET6),而一到多式 SCTP 套接字是一个...原创 2018-01-18 00:10:34 · 612 阅读 · 1 评论 -
UDP套接字编程基础
下图显示了使用 UDP 套接字编写客户/服务器程序时的大致流程。[img]http://dl2.iteye.com/upload/attachment/0128/4350/7b0fbb0a-8dc4-390f-8c00-a5b04131aeb4.png[/img] UDP 中的客户不需要与服务器建立连接,而是采用 sendto 和 recvfrom 函数来发送和接收数据。...原创 2018-01-14 10:37:10 · 257 阅读 · 0 评论 -
通用套接字选项
在[url=http://aisxyz.iteye.com/admin/blogs/2405269]获取和设置套接字选项[/url]一节中对可获取和设置的套接字选项进行了简单描述,这一节将对其中的通用套接字选项作更深入的介绍。既然是“通用”,那就表明这些选项是协议无关的(不过其中有些选项只能应用到某些特定类型的套接字中,比如 SO_BROADCAST 只能应用于数据报套接字)。 ...原创 2018-01-02 00:46:35 · 330 阅读 · 0 评论 -
获取和设置套接字选项
下面几种方法可用来获取和设置影响套接字的选项: (1)getsockopt 和 setsockopt 函数; (2)fcntl 函数; (3)ioctl 函数。 本文将介绍 getsockopt 和 setsockopt 函数,对 fcntl 的介绍见[url=http://aisxyz.iteye.com/admin/blogs/2378902]f...原创 2017-12-29 08:21:12 · 699 阅读 · 0 评论 -
I/O 复用之 poll 函数
poll 函数提供的功能与 select 类似,不过在处理流设备时,它能提供额外的信息。[code="c"]#include int poll(struct pollfd *fdarray, unsigned long nfds, int timeout); /* 返回值:若有就绪描述符则为其数目,若超时则为 0,若出错则为 -1 */str...原创 2017-12-27 00:20:19 · 170 阅读 · 0 评论 -
I/O 复用之select 函数
select 函数允许进程指示内核等待多个事件中的任何一个发生,并只在有一个或多个事件发生或经历一段指定的时间后才唤醒它。感兴趣的描述符不局限于套接字,任何描述符都可以使用 select 来测试。[code="c"]#include #include int select(int maxfdp1, fd_set *readset, fd_set *writeset, fd_...原创 2017-12-12 00:32:38 · 142 阅读 · 0 评论 -
Unix 5 种 IO 模型概述
Unix 下有 5 种可用的 I/O 模型:阻塞式 I/O、非阻塞式 I/O、I/O 复用(select 和 poll)、信号驱动式 I/O(SIGIO)和 异步 I/O(POSIX 的 aio_ 系列函数)。其中的每种模型细节会在后面陆续补上,本节只对它们进行大概的描述。 一个输入操作通常包括两个不同的阶段: (1)等待数据准备好; (2)从内核向进程复制数...原创 2017-11-19 01:44:24 · 101 阅读 · 0 评论 -
套接字创建、连接和关闭函数
下图是一对 TCP 客户与服务器进程之间发生的一些典型事件的时间表。[img]http://dl2.iteye.com/upload/attachment/0126/4398/db4635bf-090d-3dcf-acd5-6d218c467852.png[/img] 为执行网络 I/O,一个进程必须做的第一件事就是调用 socket 函数,指定期望的通信协议类型。[co...原创 2017-08-13 17:16:08 · 2151 阅读 · 0 评论 -
字节转换和填充函数
网络编程中,为保证发送协议栈和接收协议栈就如 32 位 IPv4 地址等多字节字段各个分节的传送顺序一致,经常需要在主机字节序和网络字节序之间进行转换。这种转换就是利用以下 4 个函数来实现的。[code="c"]#include uint16_t htons(uint16_t host16bitvalue);uint32_t htonl(uint32_t host32bi...原创 2017-08-06 01:09:17 · 358 阅读 · 0 评论 -
IPv4 和 IPv6 的套接字地址结构
大多数套接字函数都需要一个指向套接字地址结构的指针作为参数,每个协议族都定义有它自己的套接字地址结构。这些结构的名字均以“sockaddr_”开头,并以对应每个协议准的唯一后缀结尾。 IPv4 套接字地址结构通常也称为“网际套接字地址结构”,它以“sockaddr_in”命名,定义在 头文件中。下面是它的 POSIX 定义。[code="C"]#include ...原创 2017-08-01 21:03:57 · 1728 阅读 · 0 评论 -
TCP、UDP 和 SCTP 输出介绍
每个 TCP 套接字都有一个发送缓冲区,可以使用 SO_SNDBUF 套接字选项来更改该缓冲区的大小。下图展示了某个应用进程写数据到一个 TCP 套接字时发生的步骤。[img]http://dl2.iteye.com/upload/attachment/0126/2921/f7c36314-75ea-3bab-a25b-628fa9428913.png[/img] 当某个应用...原创 2017-07-28 22:32:53 · 291 阅读 · 0 评论 -
SCTP的建立和终止以及状态转换图
与 TCP 一样,SCTP 也是面向连接的,因而也有关联的建立和终止的握手过程。 建立一个 SCTP 连接时发生的情形如下: 1、服务器必须准备好接受外来的连接。这通常通过调用 socket、bind 和 listen 这 3 个函数来完成,称为被动打开。 2、客户通过调用 connect 或者发送一个隐式打开该连接的消息进行主动打开。这使得客户 SCTP 发...原创 2017-07-24 22:46:42 · 1320 阅读 · 0 评论 -
TCP状态转换图
TCP 涉及连接建立和终止的操作可用如下的状态转换图来说明。[img]http://dl2.iteye.com/upload/attachment/0126/1456/b51915ca-778c-31c7-98de-e4decbf91711.png[/img] TCP 为一个连接定义了 11 种状态,这些状态可使用 netstat 显示,并且 TCP 规则规定如何基于当前状态...原创 2017-07-22 18:29:40 · 93 阅读 · 0 评论 -
SCTP 事件通知
SCTP 提供了多种可用的通知,用户可经由这些通知追踪相关关联的状态。通知传递的是传输级的事件,包括网络状态变动、关联启动、远程操作错误以及消息不可递送。不论是一到一式还是一到多式接口,默认情况下除 sctp_data_io_event 外的所有事件都是禁止的。 使用[url=http://aisxyz.iteye.com/admin/blogs/2408978]SCTP 套接字...原创 2018-02-08 03:49:15 · 2455 阅读 · 0 评论