
网络编程
文章平均质量分 93
河边小咸鱼
咸鱼码农
展开
-
学习记录:二层网络环路相关
学习记录上周实习过程中由于对此相关内容不熟悉,造成了事故。由此对相关内容加强学习,特此记录。目录学习记录一、交换机相关二、网络环路的产生三、网络环路的影响四、如何避免网络环路五、二层环路的直观异常情况一、交换机相关 总的来说,交换机是一种基于MAC地址识别,能完成封装转发数据包功能的网络设备。 在实习中,我接触到的应该都是第二层交换机(数据链路层)。其内部存在着一个映射表,记录着设备MAC地址与交换机端口之间的关系。 当交换机从某端口收到一个数据包,它首先读取包头中的源MAC地址,这原创 2021-07-18 21:52:01 · 4352 阅读 · 1 评论 -
C++网络编程学习:线程退出安全优化
网络编程学习记录使用的语言为C/C++源码支持的平台为:Windows(本文中内容使用windows平台下vs2019开发,故本文项目不完全支持linux平台)C++网络编程学习:心跳机制与定时发送数据 点我查看之前的代码开发记录笔记十二网络编程学习记录0:本次增改方向1:封装线程类相关2:退出顺序相关0:本次增改方向封装自己的线程类,使其可以控制线程及时关闭使得程序可以按合适的顺序正常退出,避免因退出顺序问题引发崩溃1:封装线程类相关 首先,为何要及时使得线程退出?因为我的原创 2021-05-28 13:18:42 · 1788 阅读 · 2 评论 -
C++网络编程学习:心跳机制与定时发送数据
网络编程学习记录使用的语言为C/C++源码支持的平台为:Windows(本文中内容使用windows平台下vs2019开发,故本文项目不完全支持linux平台)C++网络编程学习:项目化 (加入内存池静态库 / 报文动态库) 点我查看之前的代码开发记录笔记十一网络编程学习记录0:本次增改内容1:更改客户端储存方式2:更改任务队列储存方式3:加入心跳检测机制4:加入定时发送缓存消息机制0:本次增改内容更改服务端中,客户端对象储存的方式,由vector改为map。改变任务队列中任务储存方原创 2021-05-08 19:29:13 · 7395 阅读 · 6 评论 -
C++网络编程学习:项目化 (加入内存池静态库 / 报文动态库)
网络编程学习记录使用的语言为C/C++源码支持的平台为:Windows(本文项目全部使用windows平台下vs2019开发,故本文项目不支持linux平台)笔记一:建立基础TCP服务端/客户端 点我跳转笔记二:网络数据报文的收发 点我跳转笔记三:升级为select网络模型 点我跳转笔记四:跨平台支持Windows、Linux系统 点我跳转笔记五:源码的封装 点我跳转笔记六:缓冲区溢出与粘包分包 点我跳转笔记七:服务端多线程分离业务处理高负载 点我跳转笔记八:对sock原创 2021-04-26 23:09:03 · 3591 阅读 · 7 评论 -
C++网络编程学习:消息接收与发送分离
网络编程学习记录使用的语言为C/C++源码支持的平台为:Windows / Linux笔记一:建立基础TCP服务端/客户端 点我跳转笔记二:网络数据报文的收发 点我跳转笔记三:升级为select网络模型 点我跳转笔记四:跨平台支持Windows、Linux系统 点我跳转笔记五:源码的封装 点我跳转笔记六:缓冲区溢出与粘包分包 点我跳转笔记七:服务端多线程分离业务处理高负载 点我跳转笔记八:对socket select网络模型的优化 点我跳转笔记九:消息接收与发送分离原创 2021-02-21 14:24:33 · 2344 阅读 · 11 评论 -
C++网络编程学习:对socket select网络模型的优化
网络编程学习记录使用的语言为C/C++源码支持的平台为:Windows / Linux笔记一:建立基础TCP服务端/客户端 点我跳转笔记二:网络数据报文的收发 点我跳转笔记三:升级为select网络模型 点我跳转笔记四:跨平台支持Windows、Linux系统 点我跳转笔记五:源码的封装 点我跳转笔记六:缓冲区溢出与粘包分包 点我跳转笔记七:服务端多线程分离业务处理高负载 点我跳转笔记八:对socket select网络模型的优化笔记八网络编程学习记录零、思路与流程原创 2021-02-20 22:00:28 · 883 阅读 · 0 评论 -
C++网络编程学习:服务端多线程分离业务处理高负载
网络编程学习记录使用的语言为C/C++源码支持的平台为:Windows / Linux笔记一:建立基础TCP服务端/客户端 点我跳转笔记二:网络数据报文的收发 点我跳转笔记三:升级为select网络模型 点我跳转笔记四:跨平台支持Windows、Linux系统 点我跳转笔记五:源码的封装 点我跳转笔记六:缓冲区溢出与粘包分包 点我跳转笔记七:服务端多线程分离业务处理高负载 笔记七网络编程学习记录一、思路与准备二、代码的改进一、思路与准备之前的服务端思路大概是如下的原创 2021-02-07 14:05:55 · 3925 阅读 · 10 评论 -
C++网络编程学习:缓冲区溢出与粘包分包
网络编程学习记录使用的语言为C/C++源码支持的平台为:Windows / Linux笔记一:建立基础TCP服务端/客户端 点我跳转笔记二:网络数据报文的收发 点我跳转笔记三:升级为select网络模型 点我跳转笔记四:跨平台支持Windows、Linux系统 点我跳转笔记五:源码的封装 点我跳转笔记六:缓冲区溢出与粘包分包笔记六网络编程学习记录一、关于缓冲区溢出1.缓冲区溢出的原因2.缓冲区溢出的处理方法二、粘包与分包1.粘包与分包的原因2.粘包与分包的处理方法2.1客户原创 2021-01-28 11:53:13 · 2303 阅读 · 8 评论 -
C++网络编程学习:源码的封装
网络编程学习记录使用的语言为C/C++源码支持的平台为:Windows / Linux笔记一:建立基础TCP服务端/客户端 点我跳转笔记二:网络数据报文的收发 点我跳转笔记三:升级为select网络模型 点我跳转笔记四:跨平台支持Windows、Linux系统 点我跳转笔记五:源码的封装笔记五网络编程学习记录一、为何要进行封装操作二、封装的思路与相关1.封装的头文件选择2.客户端类的封装3.服务端类的封装三、封装后的详细源码及其注释1.客户端TcpClient.hppclien原创 2021-01-26 21:42:02 · 1923 阅读 · 5 评论 -
C++网络编程学习:跨平台支持Windows、Linux系统
网络编程学习记录使用的语言为C/C++笔记一:建立基础TCP服务端/客户端 点我跳转笔记二:网络数据报文的收发 点我跳转笔记三:升级为select网络模型 点我跳转笔记四:跨平台支持Windows、Linux系统笔记四网络编程学习记录一、为何要进行跨平台操作二、关于Win与Linux系统下网络编程的差异差异一差异二差异三差异四三、基于笔记三进行 源码跨平台化升级1.客户端源码一、为何要进行跨平台操作 首先,我是想在网络编程学习渐入佳境后,自己尝试做一个网络方面的项目,其中就必须原创 2021-01-24 20:09:34 · 2906 阅读 · 0 评论 -
C++网络编程学习:升级为select网络模型
网络编程学习记录使用的语言为C/C++笔记一:建立基础TCP服务端/客户端 点我跳转笔记二:网络数据报文的收发 点我跳转笔记三:升级为select网络模型笔记三网络编程学习记录一、为何要使用select网络模型?二、select系统及其相关★ select相关使用总结与心得三、升级为select网络模型的思路1.服务端升级(select)2.客户端升级(select+多线程)四、代码及其详细注释1.服务端代码2.客户端代码一、为何要使用select网络模型? 通过前面的学习,已经实原创 2021-01-23 22:36:50 · 2049 阅读 · 0 评论 -
C++网络编程学习:网络数据报文的收发
网络编程学习记录使用的语言为C/C++笔记一:建立基础TCP服务端/客户端 点我跳转笔记二:网络数据报文的收发笔记二网络编程学习记录一、网络数据报文的格式定义二、将包头与包体数据分开收发1.概括2.代码及其详细注释服务端代码:客户端代码:一、网络数据报文的格式定义报文有两个部分,包头和包体,是网络消息的基本单元。包头: 描述本次消息包的大小,描述包体数据的作用。包体: 其中包含了需要传输的数据。 根据此数据结构,我们可以根据包头的内容,来灵活的对包体的数据进行处理。二、将包原创 2021-01-22 12:25:43 · 6648 阅读 · 0 评论 -
C++网络编程学习:建立基础TCP服务端/客户端
网络编程学习记录笔记一:建立简易TCP服务端/客户端笔记一网络编程学习记录一、建立简易TCP服务端1.建立服务端大致流程2.代码实现以及详细注释二、建立简易TCP客户端1.建立客户端大致流程2.代码实现以及详细注释一、建立简易TCP服务端1.建立服务端大致流程建立一个套接字 (socket)绑定客户端连接的端口 (bind)监听网络端口 (listen)等待接受客户端连接 (accept)接收客户端发送的数据 (recv)向客户端发送数据 (send)关闭套接字 (closesoc原创 2021-01-21 17:49:20 · 5259 阅读 · 5 评论