
网络编程
文章平均质量分 75
Jxiepc
一个努力向上的男同志
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【UNIX网络编程】|【07】SCTP协议探究
2、接口模型在决定使用哪种接口形式时,考虑应用程序的因素2.1 一到一形式2.2 一到多形式3、sctp_bindx函数4、sctp_connectx函数5、sctp_getpaddrs函数6、sctp_freepaddrs函数7、sctp_getladdrs函数8、sctp_freelpaddrs9、sctp_sendmsg10、sctp_recvmsg11、sctp_opt_info12、sctp_peeloff函数13、shudown原创 2022-07-06 14:29:04 · 1140 阅读 · 0 评论 -
【UNIX网络编程】|【06】基本UDP套接字编程【数据报丢失、性能、流量控制....】
2、recvfrom和sendto3、UDP回射服务器程序4、dg_echo函数4、UDP回射客户程序5、UDP客户程序:dg_cli函数6、数据报丢失7、验证接收到的响应8、服务器进程未运行区分连接与未连接10、 给一个UDP套接字多次调用connect11、性能12、dg_cli函数13、UDP缺乏流量控制...原创 2022-06-28 16:23:47 · 552 阅读 · 0 评论 -
【UNIX网络编程】|【04】I/O模型、select、pselect、poll
1.1 应用场景2、I/O模型2.1 阻塞式I/O模型为什么使用UDP,而不是TCP2.2 非阻塞式I/O模型2.3 I/O复用模型2.4 信号驱动式I/O模型2.5 异步I/O模型2.6 各种I/O模型的比较2.7 同步I/O和异步I/O对比3、select函数常见错误3.1 描述符就绪条件调用select处理可读套接字处理可读输入3.3 批量输入插图测试批量处理解决缓冲区问题3.4 shutdown函数3.5原创 2022-06-20 22:21:14 · 381 阅读 · 0 评论 -
【UNIX网络编程】| 【03】TCP客户/服务器程序示例
创建套接字,捆绑服务器的众所周知端口等待完成客户连接并发服务器echo读入缓冲区并回射其中内容3、TCP回射客户程序终止步骤可参考此处5.1 signal函数使用typedef简化函数原型设置处理函数设置SA_RESTART调用sigaction函数5.2 POSIX信号语义6、处理SIGCHID信号可参考该文章将信号添加到服务端代码后将不在有僵尸进程具体步骤:6.2 处理被中断的系统调用系统慢调用规则处理中断的accept7、wait原创 2022-06-17 17:11:47 · 3301 阅读 · 0 评论 -
【UNIX网络编程】| 【02】基本TCP套接字编程(socket、connnect、bind、linsten、accept、并发服务器)
2.1 案例注意3、bind函数3.2 运行捆绑通配地址的当个服务器4、listen函数4.1 listen包裹函数,设置backlog5.1 服务端程序:通过accept获取客户端ip和端口6.1 fork的典型用法6.2 exec函数以上函数的区别注意7、并发服务器7.1 结合fork的大致用法7.2 为什么父进程对cfd调用close没有终止它与客户的连接呢?...原创 2022-06-15 21:09:30 · 994 阅读 · 0 评论 -
【UNIX网络编程】| 【01】基本套接字编程(套接字地址结构、值-结果参数、字节序基本函数)
1.1 IPv4套接字地址结构1.3 IPv6套接字结构1.4 新的通过套接字地址结构与旧通用套接字的差别1.5 套接字结构的比较【网络协议】| 【01】网络字节序大端、小端如何在主机字节序和网络字节序之间相互转换位序4、字节操纵函数ANSI C函数5、inet_aton、inet_addr和inet_ntoa函数6、inet_pton和inet_ntop函数简化版7、sock_ntop和相关函数sock_ntop实现......原创 2022-06-14 22:12:38 · 525 阅读 · 1 评论 -
Linux【网络库】| 【02 <netdb.h>】以及网络常用结构体
文章目录一、简介二、常用结构体1、addrinfo2、sockaddr_storage三、常用函数1、getaddrinfo2、gai_strerror3、freeaddrinfo4、getnameinfo案例stddefsys.unstdintbyteswap一、简介网络数据库操作的定义;二、常用结构体1、addrinfostruct addrinfo { int ai_flags; -原创 2022-03-24 15:59:25 · 3653 阅读 · 0 评论 -
Linux【网络库】| 【01 <ifaddr.h>】以及网络常用结构体
文章目录一、简介二、网络常用结构体1、ifaddrs2、sockaddr3、sockaddr_in4、sockaddr_in6三、常用函数1、getifaddrs2、freeifaddrs3、getnameinfo四、案例一、简介用来获取网络接口地址;二、网络常用结构体1、ifaddrsstruct ifaddrs { struct ifaddrs *ifa_next; // 指向列表中下一个结构的指针。该字段在列表的最后一个结构中为 NULL char原创 2022-03-24 15:06:51 · 1766 阅读 · 0 评论 -
Linux网络编程 | UDP服务器
文章目录一、UDP1.1 简介1.2 常用函数‘1.2.1 recvfrom1.2.2 recv1.2.3 send1.2.4 sendto二、组播一、UDP1.1 简介UDP在传输过程中,不需要像TCP需要三次握手建立连接,从而提大幅提高通信间的效率,实时性强且开销小。但通信的稳定性和正确率却得不到保证;故被称为无连接的不可靠报文传递;故在使用该协议进行传输时,为了保证数据的正确性,我们需要在应用层添加辅助校验协议来填补这个不足;当然,UDP没有类似TCP的滑动窗口机制,故缓冲区被填满原创 2022-02-28 11:30:29 · 2112 阅读 · 0 评论 -
Linux网络编程 | 高并发服务器【多进程、线程、select、poll、epoll】
文章目录一、多进程服务器二、多线程服务器三、多路IO转接3.1 select3.1.1 简介3.1.2 常用函数一、多进程服务器二、多线程服务器三、多路IO转接前面的两个方法都能够实现多个客户端连接一个服务端,但在运行的过程中能发现,它会生成多个进程,每个客户端都会由与之对应的server进程。若应用于网络中,当访问的客户端足够多时,将会造成服务器崩溃;因此,在Linux上我们应该使用内核代替应用程序监视文件;3.1 select3.1.1 简介select能监听的文件描述符个数受限于原创 2022-02-24 11:36:20 · 1543 阅读 · 0 评论 -
Linux网络编程 | Socket
文章目录Socket编程基本概念网络字节序Socket编程基本概念在Linux环境下,用于表示进程间网络通信的特殊文件类型(IP和port);本质:为内核借助缓冲区形成的伪文件。即是文件,则可用文件描述符来引用;进而,在Linux中封装成与读写文件操作一致的接口;若要建立连接,则两个进程必须各自有一个socket标识【一对一】;在网络通信中,套接字一定是成对出现的。一端的发送缓冲区对应对端的接收缓冲区。我们使用同一个文件描述符索发送缓冲区和接收缓冲区。网络编程接口网络字节序原创 2022-02-21 09:39:01 · 486 阅读 · 0 评论 -
Linux网络编程 | 网络编程名词术语
文章目录一、路由1.1 路由1.2 工作原理1.3 路由表1.4 路由条目1.5 路由节点二、Other2.1 半双工/全双工2.2 DNS服务器2.3 局域网(LAN)2.4 广域网(WAN)2.5 端口一、路由1.1 路由名词:数据包从源地址到目的地址所经过的路径,由一系列路由节点组成;动词:某个路由节点为数据包选择投递方向的选路过程;1.2 工作原理路由器是连接因特网中各局域网、广域网的设备,会根据信道的情况自动选择和设定路由,以最佳路径,按前后顺序发送信号的设备。路由器工作于O原创 2022-02-17 21:12:59 · 175 阅读 · 0 评论 -
Linux网络编程 | TCP状态转换【2MSL】
文章目录一、TCP状态转换1、半关闭2、2MSL一、TCP状态转换CLOSED:表示初始状态。LISTEN:表示服务器端的某个SOCKET处于监听状态,可连接。SYN_SENT:表示客户端已发送SYN报文。这个状态与SYN_RCVD遥相呼应,当客户端SOCKET执行CONNECT连接时,它首先发送SYN报文,随即进入到了SYN_SENT状态,并等待服务端的发送三次握手中的第2个报文。SYN_RCVD: 表示接收到SYN报文,在正常情况下,这个状态是服务器端的SOCKET在建立TCP原创 2022-02-07 23:07:17 · 360 阅读 · 0 评论 -
Linux网络编程 | TCP协议的【滑动窗口机制】
文章目录滑动窗口机制滑动窗口机制前面提到UDP的时候,遇到一个问题:当发送端的发送速度过快时,接收端接受到数据后的处理速度较慢,而接受端的缓冲区的大小是固定的。当到达一定的上限就会导致数据丢失;而TCP确在这一方面没用这个顾及,来看看TCP协议的滑动窗口机制是如何处理这个问题。【1】发送端发起连接,声明最大段尺寸是1460(mss),初始序号是0,窗口大小是4K(win 4096),表示“我的接收缓冲区还有4K字节空闲,你发的数据不要超过4K”。接收端应答连接请求,声明最大段尺寸是1024,初原创 2022-02-07 20:54:19 · 3556 阅读 · 0 评论 -
Linux网络编程 |【第二篇】TCP协议的建立连接三次握手、关闭连接四次握手
文章目录一、TCP协议1、建立连接三次握手2、数据传输3、关闭连接四次握手一、TCP协议1、建立连接三次握手【第一次】客户端发送一个带SYN标志的TCP报文到服务器:客户端发出段1,SYN位表示连接请求;且带序号,序号在网络通讯中用作临时的地址,每发一个数据字节,这个序号要加1,便于在接收端可以根据序号排出数据包的顺序,也可以发现丢包的情况;规定SYN位、FIN位也要占一个序号,若发了SYN位,则再发送应该用序号加一;mss表示最大段尺寸,如果一个段太大,封装成帧后超过了链路层的最大帧长原创 2022-02-07 16:08:45 · 398 阅读 · 0 评论 -
Linux网络编程 | 【第一篇】网络协议详解
前言文章目录前言一、协议1.1 基本概念1.2 典型协议二、网络应用程序设计模式2.1 C/S模式2.2 B/S模式三、分层模型3.1 OSI 七层模型一、协议1.1 基本概念从应用的角度出发,定义为数据传输和数据解释的规则;常见协议:http、tcp;1.2 典型协议传输层:TCP/UDP;应用层:HTTP、FTP;网络层:IP、ICMP、IGMP;网络接口层:ARP、RARP;TCP:传输控制协议,面向连接的、可靠的、基于字节流的传输层通信协议;原创 2022-02-07 14:36:00 · 3494 阅读 · 0 评论