自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 【C语言】实现linux下基于C语言的一个简单的UDP客/服端通信

成功返回接收到的报文大小,失败返回-1,使用perror或者打印全局变量errno可以打印出失败原因。成功返回发送的字节数,失败返回 -1,使用perror或者打印全局变量errno可以打印出失败原因。EWOULDBLOCK 错误原因是套接字没有数据,但是已经北指定为非阻塞I/O。EWOULDBLOCK 错误原因是套接字没有数据,但是已经被设定为非阻塞I/O。flags:类型为int,控制位,指定是否接受带外数据和是否预览报文,默认为0。EFAULT 错误原因是参数msg不正确。

2023-08-08 15:23:44 830

原创 【网络通信】tcp三次握手和四次挥手精讲

第一次握手前。服务端调用 listen()函数 使其处于 LISTEN 状态(监听状态),然后调用 accept() 函数等待客户端的第一次握手请求。(也就是说服务端一开始就是处于 LISTEN状态 ) 客户端通过调用 connect() 函数发起第一次握手请求。客户端将TCP头部数据中的随机初始化值(seq = x,但一般这个 x 会是 0),然后将置1(SYN = 1),表示这是SYN报文。当发送完第一个SYN报文后,客户端处于SYN_SENT状态(同步已发送状态) 当服务端收到第一个

2023-05-29 14:55:21 399

原创 【计算机网络】网络协议五层模型下的各层数据传输的结构(以TCP包为例)

通过 二标题 中的网络数据流向可以知道。数据流向哪一层时就要添加或者去掉哪一层的头部。传输层头部字段有端口号,到达下一层网络层就有了ip地址,再流到数据链路层就有了MAC地址。一步步寻址,最终找到对应的目的主机。并往上一层层去掉头部还原应用层我们recv到的原始数据。本文还加了抓包图,可以对照抓包的数据一个个字段看,可以发现每一个字段的值和抓包的16进制值(换算)是一致的。

2023-05-25 16:27:31 2947

原创 【C++ Boost】一个最基本的异步boost async tcp 服务/客户端代码的深刻解析,一文解决所有接口的用法以及一些容易出错的点

Boost async tcp一、平台的选择以及基本构建方法1.官网链接2.平台选择3.Boost库下载4.构建方法二、服务端 代码片段讲解+接口解析+易错点解析1.main函数代码(boost_server.cpp)2. 任务类 class tcpserver 代码(boost_server.h)(1)构造函数及启动函数start(2) 接受函数accept()的解析以及shared_from_this的核心问题(3) async_read()与async_read_some()注意事项(4) async

2023-03-15 13:35:21 3391

原创 【linux多线程】创建多线程基础,多线程pthread_join阻塞和pthread_attr_setdetachstate线程分离的区别与深度解析

thread:线程ID,通过 pthread_t 定义。 attr:线程属性,可以为线程设置各种属性,详情见附录。默认设置为NULL,表示使用默认的属性,即主子线程之间是可接合的。 start_routine:子线程函数,必须是 void *func(void *) arg:子线程函数的参数,必须是 void *,如果需要其他类型,在引入参数时强转类型即可。输出结果: 第一步:代码创建了线程,第二个参数 attr 线程属性设置为 NULL,表示子线程与主线程是可接合的,子线

2023-03-10 16:18:15 1403

原创 【linux命令详解】mount命令

-t 指定设备的文件系统类型 常见的文件系统类型有: ext2 linux目前常用的文件系统 msdos MS-DOS的fat,就是fat16 vfat Windows98常用的fat32 nfs 网络文件系统 iso9660 CD-ROM光盘标准文件系统 ntfs Windows NT/

2023-02-13 12:59:07 2969

原创 【C语言】struct结构体内存如何分配

1.结构体内存分配是根据结构体成员的类型大小分配的,且结构体分配内存是实例化之后分配的。 对于以上的结构体,struct demo的大小是多少呢?有些同学会觉得是13个字节,其实并不是,这里的 struct demo 的大小是24个字节。 我们可以用 sizeof()来测试下结果: 输出结果为: 那么从以上测试代码可以总结出:1.结构体大小计算时,是以结构体成员的类型大小最大的那个为单位分配的。 2.结构体分配内存是结构体实例化之后才分配的,在栈内或堆内分配。

2023-02-01 11:34:24 3165

原创 【C++】lambda函数

lambda函数,又叫lambda表达式,是一种匿名函数。即没有函数名的函数。所以读者完全是可以将lambda函数看成是一般函数来认识和使用。

2022-12-12 17:11:41 674

原创 【C++】函数传值、传指针以及传引用的不同之处、生存期以及存储位置

函数传值、传指针以及传引用的不同之处、生存期以及存储位置

2022-11-30 16:03:37 1155

原创 【C语言】结构体类型的定义与使用

结构体是用户自定义的一种类型,这种类型里面可以声明不同的数据类型,如char、int...等等,以此来满足用户对某种对象的数据描述。

2022-11-25 16:56:16 19726 10

原创 【软件教程】解决kali无法和windows实现复制黏贴互通

解决kali和宿主机无法实现ctrl+C和ctrl+V的互通

2022-10-13 11:23:59 7898 2

原创 【安装教程】kali 虚拟机下载vscode以及无法启动问题

kali虚拟机安装vscode软件详细教程

2022-10-13 11:08:32 6391 3

原创 【linux命令详解】netstat 查看网络状态命令

netstat -napt

2022-07-22 15:30:08 1244

原创 【linux命令详解】scp远程传输文件命令

scp -r ./dvr admin@172.18.1.240:/home/nfs/

2022-07-22 15:28:11 1829

原创 【SIP协议详解】SIP协议各字段的含义

Request-URI:表示消息请求的方法,其值代表了信令路径下一跳的地址,也就是目的地址TO:头域包含了请求的逻辑接收地(目的地址)或者也可以是请求的用户(源地址)From:指定请求发起者的逻辑标志(源地址),tag为随机数字字符Call-ID:是一组消息的唯一标志(在请求和响应时必须保持一致),Cseq:消息序号,用来区分消息的先后顺序Via:标志实物传输的传输设备和应答送回的地址(即请求方地址,源地址)contact:提供了访问后续请求的特定代理实例的联系方法,简而言之就是源设

2022-07-22 15:12:07 4073

原创 【C语言】实现linux下的基于C语言的一个简单的TCP客/服 端的通信

struct sockaddr_in serv_addr; 这个结构体是定义在头文件中大家可以从代码中看出 sockaddr_in 这个结构体中的成员就是ip地址簇、端口号、ip地址。

2022-06-20 10:40:10 3791 3

原创 【BUG】undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator

解决编译器报错: undefined reference to `std::__cxx11::basic_string::empty() const'undefined reference to `std::__cxx11::basic_string::~basic_string()'

2022-06-02 15:38:10 9049

原创 【C语言】c/c++中常用的预定义宏:__LINE__, __func__, __FILE__, __DATE__, __TIME__

ANSI C标准中的预定义宏(也是常用的):__LINE__:在代码中插入当前行号__func__:在代码中插入当前行所在的函数的函数名__FILE__:在代码中插入当前文件的文件名__DATE__:在代码中插入当前编译的日期__TIME__:在代码中插入当前编译的时间

2022-03-08 10:29:19 2149

原创 【C语言】char *和 char[ ] 的区别,一文解决

深析字符指针和字符数组的区别,一文解决。char *p中,字符指针p是存放在栈区的,但是p存储的地址(也就是“hello world”的地址)是常量区的地址。

2022-03-02 11:37:03 1473

原创 【MQTT协议详解】MQTT协议

MQTT(消息队列遥测传输)是ISO 标准(ISO/IEC PRF 20922)下基于 **发布/订阅** 范式的消息协议。它工作在TCP/IP协议族上,是为硬件性能低下的远程设备以及网络状况糟糕的情况下而设计的发布/订阅型消息协议。 *简而言之,MQTT其实就是一个用于TCP通信的消息协议而已。既然消息协议,"消息" 自然是表示MQTT其实本质就是消息,消息在某种理解上,可以理解报文,报文包,数据等等;既然是协议,自然表示它有着自己的规则,什么叫规则?就是规定这个消息该以怎样的**........

2022-01-28 11:18:38 42225 2

原创 【BUG】解决QT中在ui设置图片,运行时却无法显示问题

解决QT中的UI界面设置图片样式表在运行时无法显示问题

2021-11-23 15:13:13 10236 5

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除