C/C++ 实现的websocket客户端和服务器 领导安排实现一个websocket客户端做测试用,因为工位电脑上的环境只有vs2019和boost1.78.0,所以只能基于boost.beast开发。擅长Qt并且有Qt开发环境的用QWebsocket更方便。官方的example中仅仅输出到控制台,而且不支持中文,这里我加入了ansi到utf8的转换,使用utf8就能正常解析中文。注:项目需包含boost库客户端代码:#include<time.h> #include <boost/beast/core.hp
静态数组和动态数组的区别 1. 静态数组在内存中位于栈区,是在定义时就已经在栈上分配了固定大小,在运行时这个大小不能改变,如:int a[10]; 动态数组是malloc或者new出来的,位于内存的堆区,它的大小是在运行时给定,并且可以改变其,如: int *a; a = new int[10];2. 静态数组的大小是在编译期间就确定,并且分配的,其内存在使用结束后由计算机自动释放,效率高;动态数组是在程序运行时,由程序员根据实际需要从堆内存中动态申请的,使用结束后由程序员进行释放,效率低。3. ...
gcc: error trying to exec ‘cc1plus‘: execvp: No such file or directory 环境为ubantu 14。gcc编译 .c 文件时正常,编译 .cpp 文件时报错。原因:解决方法:
linux下编译运行C程序(入门) 笔者现在还没有linux基础,听过vim,但还不会用,都是自己在windows上写完代码,把文件拷贝到linux系统上再去编译的。。。将windows上的文件拷贝到linux上的命令:
Vmware虚拟机创建一个linux(Ubuntu)系统 准备 好 Vmware虚拟机16版本 + ubantu-14.04-server-amd64.iso系统镜像文件。第一步:先傻瓜式安装好VMware-workstation-full-16.0.0-16894299.exe
父类指针可以指向子类对象 结论:父类指针可以指向子类对象,但是只能访问父类成员,不能访问子类成员结论:子类指针不可以指向父类对象,需要类型转换才可以笔记:<1>.当基类指针指向派生类的时候,只能操作派生类从基类中继承过来的数据.<2>.当派生类指向基类的指针,因为内存空间比基类长,访问的话会导致内存溢出,所以不允许派生类的指针指向基类。加深理解:<1>.通常来说,子类肯定含有父类所有的成员变量和方法函数.所以用父类指针指向子类时,没有问题,因为父类有的...
Probuf学习笔记 一 、什么是probufprobuf是google团队开发的一种语言无关、平台无关、可扩展的结构化数据序列化方法(常用于通信协议、数据存储等)。二 、优缺点分析优点:与XML和JSON相比,Protobuf 编码是二进制而不是文本,使用protobuf表示的数据会将数据压缩得更小,大约是json格式的1/10,xml格式的1/20。并且在反序列效率上明显优于XML。扩展性兼容性好,只需更新数据结构文件即可。缺点:由于数据采用二进制编码,出问题时不易调试。三 、安装与使用...
2020-12-31 创建动态链接库及类的导出创建一个动态库项目BDLL,在其中创建一个类B作为导出类//头文件#ifndef BBB_h__#define BBB_h__class __declspec(dllexport) BBB{public: BBB(void); ~BBB(void); int GetB();};#endif // BBB_h__//源文件#include "BBB.h"BBB::BBB(void){}BBB::~BBB(void){}int
句柄的数据类型多为void*的原因 主要有3方面原因1、void类型的指针不能执行++或者+n的操作2、不能直接取空指针指向的内容3、转换为其他类型指针时无需类型转换,例如 voidpVoid; intpInt = pVoid;这样保证了即使为void类型后面使用也很方面综上几点原因,可以使系统很好的保护句柄不被改变和破坏,又可以保证句柄作为指针时使用方便...
判断图片格式 if(0xFF == buffer[0] && 0xD8 == buffer[1]) //JPG格式if('B' == buffer[0] || 'M' == buffer[1]) // BMP格式
QComboBox下拉列表样式美化定义 Qt Assistant中官方提供的脚本定义样例如下:QComboBox { border: 1px solid gray; border-radius: 3px; padding: 1px 18px 1px 3px; min-width: 6em;}QComboBox:editable { background: white;}QComb...
VS2013中C++方式的进程间通信---socket 服务器进程:#include <Windows.h>#include <iostream>using namespace std;#pragma comment(lib, "ws2_32.lib")SOCKET ServerSocket;SOCKET CientSocket;#define IP_ADDRESS "127.0.0.1"#def...
VS2013中C++方式的进程间通信---共享内存 进程A:#include <Windows.h>HANDLE hMapFile = INVALID_HANDLE_VALUE;LPVOID lpBase = NULL;#define BUF_SIZE 8 //设置共享内存长度int main(int argc, char *argv[]){ //功能:采用共享内存方式将端口号写入内存中供客户端读取 cha...
在C++应用程序中设置生成dump并使用VS进行调试 首先,包含头文件#include "Windows.h"#include "DbgHelp.h"其次,在代码中添加这两个函数int GenerateMiniDump(HANDLE hFile, PEXCEPTION_POINTERS pExceptionPointers, PWCHAR pwAppName){ BOOL bOwnDumpFile = FALSE; HANDL...
在Windows环境下使用gcc生成可执行程序简介 gcc(GNU编译器套件)。gcc的初衷是为GNU操作系统专门编写的一款编译器,可以处理多种编程语言:C、C++、Objective-c 、Objective-c++、Fortran、 Java 、Ada 、Go及汇编语言。基本用法:在使用gcc编译器时,我们必须给出一系列必要的调用参数和文件名称。调用参数大约有100多个,具体可参考GCC Manual。用法:gcc [options...
在Windows环境下安装及配置gcc编译器 我们都知道,gcc是GNU操作系统的编译套件,那么在Windows系统下可以使用gcc吗?答案是可以的。介绍MinGW首先我们先介绍下MinGW,MinGM是指只用自由软件来生成纯粹的Win32可执行文件的编译环境,它是Minimalist GNU on Windows的略称,见名知意,是在Windows上部署了一个简洁版的GNU系统,是一套GNU的缩减工具集合,其中就有我们需要的gcc。...