linux网络编程
文章平均质量分 77
Dongliner~
别废话,使劲学
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【Linux:序列化和反序列化】
消息由几部分构成,什么含义由上层软件解释,网络通信的过程可以不关心发送的数据内容,只需要知道是字节流即可。序列化将数据内容由多变一,方便网络发送,反序列化将消息由一变多,方便上层处理。原创 2025-01-24 18:33:58 · 454 阅读 · 0 评论 -
【Linux:网络字节序+大小端转换函数】
计算机中存在两种存储字节的方式,分别是:大端存储和小端存储,TCP/IP协议规定,网络数据字节流应采用大端字节序。如果当前发送的主机是小端机就需要将数据转化为大端,再发送。不可以,当报文发送时,对端主机解析报文解析报文是大端解析还是小端解析呢,可以理解该问题为一个“蛋生鸡还是鸡生蛋”的问题。因此,网络协议(TCP/IP)直接规定网络通信必须大端字节序(低地址高字节),由此就需要有大小端转换的函数了。发送主机通常将发送缓冲区中的数据按内存地址从低到高的顺序发出。原创 2024-12-05 19:30:36 · 625 阅读 · 0 评论 -
【Linux:端口号+socket介绍】
domainAF_INET: 使用IPv4格式的ip地址AF_INET6: 使用IPv6格式的ip地址typeSOCK_STREAM: 使用流式的传输协议SOCK_DGRAM: 使用报式(报文)的传输协议protocolprotocol:一般写0,使用默认协议SOCK_STREAM: 流式传输默认使用的是tcpSOCK_DGRAM: 报式传输默认使用的udp返回值调用成功,返回文件描述符,调用失败,返回-1该函数的返回值是一个文件描述符,通过该文件描述符,可以操作内核中的某一块内存。原创 2024-12-05 18:54:07 · 730 阅读 · 0 评论 -
【Linux:epoll】
event是一个结构体,有两个成员:events和data。原创 2024-11-16 11:31:21 · 713 阅读 · 0 评论 -
【Linux:IO多路复用(select、poll函数)
nfds:是在这三个文件描述符集合中找出一个最大的文件描述符再+1内核中需要线性遍历这些集合中的文件描述符,该值是循环结束的条件该参数在windows中无效,指定为-1即可readfds:读集合一般都是需要进行检测的,这样才能知道哪些文件描述符可以接收数据writefds:内核只检测这个集合中的文件描述符对应的写缓冲区,如果不使用该参数可以用NULL指定exceptfds:内核只检测这个集合中的文件描述符是否有异常状态,如果不使用该参数可以用NULL指定。原创 2024-11-12 20:16:02 · 2133 阅读 · 0 评论 -
【Linux:HTTP协议】
服务器给客户端回复数据叫做HTTP响应,http协议封装好数据之后是一个数据块,得到若干行数据,使用的换行符为:\r\n,通过这个换行符即可判断这行是否结束。(这也解释了我们使用手机,平板等不同的客户端的浏览器访问网页时,返回给我们的是同样的数据,这是因为使用的是同一种协议)状态代码有三位数字组成,第一个数字定义了响应的类别,共分。http协议分为两部分:http请求和响应。所请求的资源是在哪个主机的哪个端口上。声明用户的操作系统和浏览器版本信息。当前页面是从哪个页面跳转过来的。协议是一种数据格式的约定。原创 2024-11-10 13:34:41 · 650 阅读 · 0 评论 -
【Linux:tcp三次握手和四次挥手】
TCP报文中含有SYN、ACK、FIN等标识,把这些标识设置1就是开启这些标识,设置为0就是关掉这些标识。原创 2024-11-07 16:03:02 · 560 阅读 · 0 评论 -
【Linux:TCP通信流程】
IP+端口号就叫socket,IP是每一台主机唯一的标识符,而端口号在同一台主机上也是唯一的。网络通信的本质其实就是进程间通信问题:每一个进程都有自己的pid,而且pid都是唯一的,为什么还需要额外用端口号来找到进程呢?进程中有需要网络通信的进程也有不需要网络通信的进程,如果拿pid通信,就区分不了哪些进程是不需要通信的,有端口号的进程可以进行网络通信,没有端口号的就不需要网络通信,通过有无端口号对进程是否需要通信做区分。原创 2024-10-31 21:09:46 · 1550 阅读 · 0 评论 -
【Linux:网络基础】
协议实际上可以称为一种“约定”,通过网络通信中的数据约定,不同主机必须遵循相同的网络协议才可以实现通信。协议即为通信双方都认识的结构化的数据类型。原创 2024-10-29 10:49:09 · 658 阅读 · 0 评论
分享