项目
Monster_ixx
这个作者很懒,什么都没留下…
展开
-
Vue项目引入CDN后出现问题
Vue项目发布后一般都会将本地的依赖包改为用CDN的形式引入,但是引入之后可能会出现各种问题,比如说我就遇到了Cannot read property 'catch' of undefined,这个catch应该是我在每个axios请求后面用以处理错误的捕获函数。在本地没有问题,为什么一用cdn就出现问题了呢?稍加分析后我觉得可能是引入的cdn引入的依赖和本地的版本不太一样。在vue项目文件夹...原创 2020-04-05 15:31:56 · 4298 阅读 · 7 评论 -
使用context实现的C++协程库
先上大佬的github,这个协程库的实现主要参考大佬的思路,所做的工作只是将代码做一个面向对象的封装。协程是什么?协程其实可以理解成一中更细粒度的线程,不同的协程在一个线程中执行不同的代码序列,但是不需要进行线程的切换,也有人把这种实体叫做用用户级线程。其他的语言例如Python和Golang中都有比较完善的对协程的实现。要实现协程主要是要能保存和恢复上下文。运用context保存协程上...原创 2019-10-31 16:58:04 · 2000 阅读 · 2 评论 -
c++ socket端口混乱
最近在写web服务器的时候突然碰到了一个问题,就是在使用c++ socket的时候在浏览器上突然不能连接,想到前几天Xcode刚刚更新,还以为是Xcode导致clang出现问题。进行调试的时候还以为是多路复用IO出了问题(因为调试的时候停在那里),后来才发现是因为没有收到连接请求。于是非常苦恼。万幸的是我遇到了Vs code这个神级编辑器。写了个小程序进行测试,其实就是个最简单的serve...原创 2019-04-01 20:09:35 · 591 阅读 · 0 评论 -
C++实现的内存池
原文地址:转自https://blog.csdn.net/shawngucas/article/details/6574863只能感叹写这个的大佬牛逼…自己写了一点注释,还是有些地方没有看懂,但是感觉也有些地方有点问题。这里只转载了用链表实现的部分。1. 内存池设计1.1 目的在给定的内存buffer上建立内存管理机制,根据用户需求从该buffer上分配内存或者将已经分配的内存释放回b...转载 2019-03-29 16:19:52 · 358 阅读 · 0 评论 -
C++实现的简单的定时器
已经好几天没有写博客了。这几天都在看定时器,想搞清楚他的原理,想知道他到底是怎么用的。无奈没有一篇能够比较系统地告诉我定时器是干什么的,怎么用的,导致项目长时间停滞。在看了几篇博客之后,根据我自己的理解,实现了一个简单的定时器,其中有参考其他的博文的写法,好在我现在实现了一个看起来能用的定时器。定时器的应用场景场景一:keep alive保活机制成千上万个客户端去连接一台聊天服务器,那么...原创 2019-03-18 22:20:02 · 8132 阅读 · 1 评论 -
对c++线程池的一点理解
感谢这篇博文提供了这么好的一个demo让我学习了如何用C++实现一个线程池。本博文也是基于此篇博文对线程池作一点粗浅的讨论。线程池,就是一个用来管理已经创建线程,并控制他们执行一定的任务的一个结构。之所以需要线程池,是因为线程的创建和销毁比较耗费资源,而线程池可以创建一定的阻塞线程,使他们能根据需要被调用,从而减小不必要的开销。貌似线程池多用于网络服务器。当然,要使用线程池需要一个前置的技能...原创 2019-03-12 19:51:33 · 608 阅读 · 0 评论 -
c++ socket实现的用kqueue实现多请求响应
这个版本更新主要是为了能使服务器能够同时处理多个请求。最初有这个想法是因为这个博客最下面有一个select()函数,用来处理多个请求。之后又发现了epoll。发现了epoll之后本想写个小程序测试一下,但是却报了无法找到头文件的错误。这才意识到epoll是linux内核实现的,而我是用macOS开发的,实际上就是FreeBSD,也就是Unix。虽然linux是类Unix系统,但是还是有些地方不一...原创 2019-03-07 15:19:14 · 1403 阅读 · 0 评论 -
用socket实现访问一个固定的文件
看了一整天的socket理论终于在今天有了一点实践。虽然只是一个很简单的小东西,而且大部分写法也参照了别人,但是能够第一次动手实践也是很开心的。这个文件就是用了socket中的listen()和accept()写了一个简单的web服务器,没有用到多线程,不能访问其他的文件,希望以此作为整个大的web服务器的开始吧。在写的过程中也遇到了一些小问题,都写在了注释里。定义的两个宏#define ...原创 2019-03-04 20:46:09 · 385 阅读 · 0 评论 -
c++ socket实现多请求响应服务器
虽然这个标题写的很吓人,但其实只是个弱智版。这个版本相对于上一个版本只是把其中的函数分离成多个文件来编写,增加了我项目的可扩展性,也增加一些对请求报文解析方面的内容,实际上并没有添加什么新内容。但是做完这些倒是帮我整理了一下关于.c和.h文件的关系,以及如何书写简单的makefile文件。具体代码:File_ope.h#ifndef __FILE_OPE_H_#define __FILE...原创 2019-03-09 15:22:44 · 555 阅读 · 0 评论 -
C++ socket实现多请求响应服务器(二)
这里把昨天实现的线程池加入了进来。提高了处理并发请求的能力。感觉还是加深了一点对多线程编程的理解。线程池实现可以看这里;请求处理程序(Deal_req.cpp):#include<cstdio>#include<cstring>#include<cstdlib>#include<unistd.h>#include<sys/soc...原创 2019-03-13 22:08:42 · 496 阅读 · 0 评论 -
C++ Socket实现GET请求访问一般类型文件
继续改进上次的服务器,但是仍然只能实现简单的GET请求。对比于前一个版本,这个版本加入了访问更多类型的文件。并且加入了更高级的文件存储机制,将文件映射到内存中,来解决一些不便。实现代码:#include<cstdio>#include<stdio.h>#include<cstring>#include<cstdlib>#include&...原创 2019-03-05 22:38:56 · 1008 阅读 · 0 评论 -
用C++编写的2048小游戏
下定决心要自己做项目,于是就从这个小程序开始这个小游戏算是原理比较简单的一个。用了curses库进行开发。顺便熟悉了一下git的相关操作。实际写起来还是有一些小bug的,现在改正了一些。源码请看这里...原创 2019-03-02 20:40:13 · 4066 阅读 · 0 评论 -
Socket实现简单的GET请求
继续完成之前的web服务器。这里主要实现了简单的web服务器的GET请求,返回相应的文件。主要是在上次的基础上修改以及参考别人的写法,当然中间也遇到了很多的问题。其实这个程序和上一个程序的不同就是把固定的访问文件参数化了,其实思路非常简单,就是利用字符串作为文件名打开文件。由于之前实现的时候在获取文件大小时,调用了fseek函数,因此文件指针就指向文件尾,但是我意识上还是以为它仍然指向文件...原创 2019-03-05 13:59:04 · 1482 阅读 · 2 评论