
网络编程
文章平均质量分 63
会飞的胖达喵
胖达是只爱打架的猫,而且还会飞~
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
docker network 与host的区别
Docker网络IP分配机制摘要: 指定网络运行容器时,Docker会自动从该网络子网分配IP地址 默认bridge网络使用172.17.0.0/16网段,自定义网络按创建时子网分配 可通过docker inspect查看容器获取的IP地址 使用host网络模式时,容器直接共享宿主机网络,不分配独立IP host模式取消网络隔离,性能最佳但安全性降低,适合高性能需求场景 (99字)原创 2025-08-13 14:16:23 · 504 阅读 · 0 评论 -
关于QT中Query的bindValue函数mismatch问题
本来是以为参数个数或者类型不匹配导致的,但是反复检查,个数和类型都没问题。我之前没使用过bindValue这个函数,是直接使用的字符串模板替换,所以对bindValue这个函数的用法不太了解,刚开始我是这样使用的,如图所示。要么使用字符串模板替换的方法,这种的我觉得最实用,也不容易出错,需要注意的就是,如果字段是字符串类型,需要在字符串模板中加上’ ’字符,如下图所示。知道原因了,那就好找方法了,要么使用bindValue函数,但是里面的字符串中,表名和字段名都得固定好,或者使用参数传递,如图所示。转载 2024-11-14 23:40:32 · 240 阅读 · 0 评论 -
动图图解!收到RST,就一定会断开TCP连接吗?
我们都知道TCP正常情况下断开连接是用四次挥手,那是正常时候的优雅做法。但异常情况下,收发双方都不一定正常,连挥手这件事本身都可能做不到,所以就需要一个机制去强行关闭连接。RST就是用于这种情况,一般用来异常地关闭一个连接。它是一个TCP包头中的标志位。正常情况下,不管是发出,还是收到置了这个标志位的数据包,相应的内存、端口等连接资源都会被释放。从效果上来看就是TCP连接被关闭了。而接收到 RST的一方,一般会看到一个或的报错。TCP报头RST位RST其实是TCP包头里的一个标志位,目的是为了在。转载 2024-11-14 22:59:52 · 178 阅读 · 0 评论 -
为什么用公钥加密却不能用公钥解密?
第三和第四次握手的最后都有个Finished报文,里面是个摘要。摘要,说白了就是对一大段文本进行一次hash操作。目的是为了确认通信过程中数据没被篡改过。第三次握手,客户端生成摘要,服务端验证,如果验证通过,说明客户端生成的数据没被篡改过,服务端后面才能放心跟客户端通信。第四次握手,则是反过来,由服务端生成摘要,客户端来验证,验证通过了,说明服务端是可信任的。那么问题叒来了。为什么要hash一次而不是直接拿原文进行对比?这是因为原文内容过长,hash之后可以让数据变短。更短意味着更小的传输成本。转载 2024-11-14 22:55:18 · 226 阅读 · 0 评论 -
socket到底是什么?
• socket中文套接字,我理解为一套用于连接的数字。并不一定准确,欢迎评论。• sock在内核,socket_fd在用户空间,socket层介于内核和用户空间之间。• 在操作系统内核空间里,实现网络传输功能的结构是sock,基于不同的协议和应用场景,会被泛化为各种类型的xx_sock,它们结合硬件,共同实现了网络传输功能。转载 2024-11-14 22:48:55 · 226 阅读 · 0 评论 -
ab测试命令
1、执行安装2、 执行命令-n表示1000次,-c表示开10线程原创 2022-07-14 14:58:02 · 346 阅读 · 0 评论 -
使用inet_ntoa会报错
在Socket编程中,使用inet_ntoa会报错,如图 目前解决方法有以下几种,1、用inet_ntop函数替代inet_ntoa2、项目属性---配置---C/C++---预处理器----预处理器 ---加上“_WINSOCK_DEPRECATED_NO_WARNI”3、项目属性---配置---C/C++---预处理器----预处理器 ---加上“_CRT_SECURE_NO_WARNINGS”4、项目属性---配置---C/C++---常规---将SDL检查改为否这几种方法我都试过,没能解决我的问题。转载 2022-07-07 11:48:40 · 1364 阅读 · 0 评论 -
error LNK2019: 无法解析的外部符号
编译错误信息尝试在.h文件中添加解决方法原创 2022-07-06 15:50:22 · 1533 阅读 · 1 评论 -
socket编程demo二
socket编程示例原创 2022-07-04 17:18:49 · 262 阅读 · 0 评论 -
c++实现tcpserver demo01
###c++实现tcpserver原创 2022-06-30 16:53:06 · 789 阅读 · 0 评论 -
在 golang 中是如何对 epoll 进行封装的?
转载地址:在 golang 中是如何对 epoll 进行封装的? - 知乎在协程没有流行以前,传统的网络编程中,同步阻塞是性能低下的代名词,一次切换就得是 3 us 左右的 CPU 开销。各种基于 epoll 的异步非阻塞的模型虽然提高了性能,但是基于回调函数的编程方式却非常不符合人的的直线思维模式。开发出来的代码的也不那么容易被人理解。Golang 的出现,可以说是将协程编程模式推向了一个高潮。这种新的编程方式既兼顾了同步编程方式的简单易用,也在底层通过协程和 epoll 的配合避免了线程切换的性能高损耗转载 2022-06-28 11:35:38 · 633 阅读 · 0 评论 -
socket demo01
socket demo01原创 2022-06-25 17:26:59 · 138 阅读 · 0 评论 -
如果这篇文章说不清epoll的本质,那就过来掐死我吧!
下图是一个典型的计算机结构图,计算机由CPU、存储器(内存)、网络接口等部件组成。了解epoll本质的第一步,要从硬件的角度看计算机怎样接收网络数据。计算机结构图(图片来源:linux内核完全注释之微型计算机组成结构)下图展示了网卡接收数据的过程。在①阶段,网卡收到网线传来的数据;经过②阶段的硬件电路的传输;最终将数据写入到内存中的某个地址上(③阶段)。这个过程涉及到DMA传输、IO通路选择等硬件有关的知识,但我们只需知道:网卡会把接收到的数据写入内存。网卡接收数据的过程通过硬件传输,网卡接收的数据存放到内转载 2022-06-20 14:13:37 · 188 阅读 · 0 评论 -
time_wait状态产生的原因,危害,如何避免
请说说你对TCP连接中time_wait状态的理解先上TCP的状态变迁图这幅图来自《TCP IP详解卷1:协议 原书第2版中文》13.5 TCP状态转换图这幅图来自《UNIX网络编程,卷1:套接字联网API》2.6.4 TCP状态转换图1. time_wait状态如何产生? 由上面的变迁图,首先调用close()发起主动关闭的一方,在发送最后一个ACK之后会进入time_wait的状态,也就说该发送方会保持2MSL时间之后才会回到初始状态。MSL值得是数据包在网络中的最大生存时间。产生这种结果使得这个TC转载 2022-06-18 10:22:35 · 1824 阅读 · 0 评论 -
多线程/多进程/select 多路复用的区别
文章目录一、多进程二、多线程三、多路复用一、多进程最简单的并行处理方式,父进程接收用户的连接请求,使用fork、exec等创建子进程去处理用户请求多进程优点:编程简单,易于理解每个进程地址空间相互隔离,彼此不相影响,一个进程的损坏不会影响另一个进程充分利用多核资源多进程缺点:进程相互隔离,彼此之间的通信较为困难频繁创建销毁进程会加重系统负担二、多线程线程寄居于进程之中,在进程里创建,每个线程都共享这个进程的地址空间,线程之间的通信只需要读取内存就可以了多线程优点: 线程间的通信不需转载 2022-06-17 16:31:35 · 608 阅读 · 0 评论 -
多线程/多进程/select 多路复用的区别
#####一、 多线程多进程1、多进程可以有主进程来fork出来,可以继承主进程的文件描述符、坚挺的端口等比如socket 可以每个请求分发给具体的子线程来处理业务逻辑每个子线程accept进行阻塞监听2、多线程可以通过线程form出来,内存占用等比多进程要好,原理与多进程差不多1、select 会发生阻塞 监听所有的socketfd,若有有事件发生比如连接、数据、断开等会返回具体的socketFd,进而可以对对应的socket进行操作(读写、添加fd、移除fd等)..................原创 2022-06-17 15:40:07 · 888 阅读 · 0 评论 -
accept 与 epoll 惊群
首先,我们看看维基百科对惊群的定义:简而言之,惊群现象(thundering herd)就是当多个进程和线程在同时阻塞等待同一个事件时,如果这个事件发生,会唤醒所有的进程,但最终只可能有一个进程/线程对该事件进行处理,其他进程/线程会在失败后重新休眠,这种性能浪费就是惊群。考虑如下场景:主进程创建 socket、bind、 listen 之后,fork 出多个子进程,每个子进程都开始循环处理(accept)这个 socket。每个进程都阻塞在 accpet 上,当一个新的连接到来时,所有的进程都会被唤醒,但转载 2022-06-17 10:33:34 · 839 阅读 · 0 评论