- 博客(35)
- 收藏
- 关注
原创 Gin中间件
r:=gin.Default() 默认使用Logger()-记录日志 和Recover()-返回panic --500响应码 不至于网站会直接挂掉 中间件,使用gin.New()零中间件。c.Get() c.Set()可以实现从上下文中取值(跨中间件存取值)不能修改c,因为会导致c.Next()后面的c获取的内容是不可控的。
2023-08-04 22:57:20
83
原创 Gin URL请求的重定向 + Gin路由和路由组
Gin中使用r.Any()可以匹配任意请求,比如常用的GET--获取 POST--提交 PUT--更新 DELTE--删除。为没有配置处理函数的路由添加处理程序,默认情况下它返回404代码,下面的代码为没有匹配到路由的请求返回页面。//把共用的前缀提取出来,创建一个路由组。
2023-08-04 18:17:31
269
原创 Gin from表单
与query一样 可以使用 c.postfrom() c.defaultpostfrom() c.GetPostForm() string bool。除了main文件还有两个html文件 c 是 *gin.Context类型。
2023-08-04 10:15:59
92
原创 Gin返回json
1.使用map[string]interfave{} 或者gin内置的gin.H{}2.使用struct 也可以进行使用tag来对struct字段做定制化操作。
2023-08-04 09:25:07
293
原创 Go笔记的......
fmt.Println("子go正在运行: len(c)= ", len(c), "cap(c)= ", cap(c), "元素:", i)fmt.Println("len(c)= ", len(c), "cap(c)= ", cap(c)) //len 当前元素数量 cap 当前容量。w.Write([]byte("的好坏都啊哇好多啊who打完后段和我udahwdwoaud"))t := reflect.TypeOf(str).Elem() //得到当前结构体的所有的元素。
2023-07-30 21:39:24
161
原创 基于 服务器部署在linux 客户端在windows 的多人聊天室
上面是三人聊天室的终端实现,也可以加界面做成客户端形式,用云服务器可以实现qq的随发随用功能,采用的是C/S架构。目前BUG:超过两人必须同时开启,不然后面的人终端显示不停输出换行;关闭一人后其他人出现终端显示不停输出换行。
2023-07-11 08:37:54
218
1
原创 epoll简单使用
是 Linux 系统提供的一种高效的事件通知机制,用于处理大量的并发连接。它可以用于监视多个文件描述符(sockets、文件、管道等)上的事件,并在有事件发生时通知应用程序进行相应的处理。处理事件:根据返回的文件描述符和事件类型,应用程序可以执行相应的操作。例如,如果返回的事件类型是可读事件,可以使用。函数等待事件的发生。可以指定要监视的事件类型,如可读事件、可写事件等。实例中的文件描述符的监视状态。函数会返回触发事件的文件描述符和事件类型。更新事件:在处理完一个事件后,可以使用。实例中删除文件描述符。
2023-07-06 13:59:47
994
3
原创 poll服务器
使用poll机制进行实现IO多路复用,可以进行一个进程监视多个文件描述符也就是网络IO,实现的是telnet连接服务器并发送内容,服务器进行相应并显示内容,当然也可以进行echo内容,道理是一样的只需要更改服务器接收部分的代码即可。
2023-07-05 16:37:57
84
原创 动态线程池+TCP获取执行任务
主要是S端的代码,代码如下,规定了最大的客户端连接数与服务器个数的相关限制,不断获取空闲服务器进行发送数据给C端,用了自定义的信号NOTIFY,在main函数进行信号的约定和处理。
2023-06-29 09:54:47
140
3
原创 并发的问题
而在处理真共享时,则需要采取特殊措施来避免不必要的缓存行失效,以提高程序的性能。std::hardware_constructive_interference_size:同一缓存块保证容纳的最大的连续字节数(前提是数据恰当的对齐)。硬件构造性干涉大小。两个并行内存访问间的最大距离。利用数据块进行填充相同的缓存块,使得缓存块中的数据与mutex不在同一块中,防止外部对mutex加锁时将数据连带载入缓存中,如果是读-改-写操作,则会使数据失效。或者用下面这个也是可以的,进行的是后填充,使得数据在同一缓存块中。
2023-06-11 09:38:37
85
1
原创 理解自旋锁的例子
atmoic_flag 用来当自旋锁 本质也是一个同步机制 刚开始一直不明白自旋锁到底有啥用,其实就是等待另一个线程完成工作 显式地将flag进行clear后再执行当前进行忙等的线程。代码实例如下,当我们去掉忙等代码后运行结果就会出现线程交叉运行的情况,就相当于 A运行了一半,运行B,B运行了一点再接着A运行。
2023-05-24 11:05:56
111
1
原创 力扣的题-寻找两个有序数组中的中位数
寻找一个数组中的中位数,这个是容易的,两个数组的话,将他们合并即可,当然有更加简便 的方法,这里我们用最原始的方法(本人也是个新手):将两个数组合并后,进行排序从大到小,用qsort函数进行排序。void qsort (void* base, size_t num, size_t size,int (*compar)(const void*,const void*));qsort函数:第一个实参是需要排序的数组的首元素的地址,也就是数组名,num就是数组的元素个数,可以用sizeof来计算i
2022-04-03 20:21:33
501
原创 c语言实现字符串的最大的无重复字符长度
#include<stdio.h>int chongfu(char* x){ int s=0, e=0, max=0; char map[256] = { 0 }; map[(int)* (x + s)] = 1; while (*(x + e) != 0) { max = max > (e - s + 1 )? max :( e - s + 1); e++; while (0 !=map[(int)*(x + e)]) { map[(int).
2022-03-24 10:26:39
836
空空如也
有人会吗cpp qt 实习问这个正常吗
2023-12-13
为什么main函数没代码 还是出现段错误
2023-11-21
TA创建的收藏夹 TA关注的收藏夹
TA关注的人