自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

li

Talk is cheap,Show me the code. ——Linus Torvalds

  • 博客(21)
  • 资源 (3)
  • 收藏
  • 关注

原创 Epoll 服务器的一种通用框架,epoll_data_t 的使用

一、前言前面已经介绍过一个原始结构epoll服务器的使用,原文请点击查看:epoll原始结构服务器现在,我将在原epoll服务器的基础上对epoll的用法进行改进,进一步简化epoll服务器的编码方式,这种框架在大型项目中十分高效,正所谓框架搭的好,往里面填“dog shit”都不会有问题。这当中,我们需要用到一个简单的消息封装结构,这在通信中十分常见,类似于一种伪协议,只有内部通用。...

2018-08-19 17:37:50 2779 6

原创 快速排序及多线程快排优化 & 选择 & 归并排序

一、写在前面1.回调函数:用到函数指针,即指向函数的指针,这在代码框架结构设计中十分简洁高效,看代码typedef enum tagSORT_FUNC{ SELECT_SORT= 0, MERGE_SORT, QUICK_SORT, SORT_FUNC_MAX}SORT_FUNC_E;typedef void (*SORT_CALLBACK_PF...

2018-08-18 20:11:49 1669

原创 Python基础——语法简介

前言:python的学习纯粹是出于好奇与乐趣,为什么呢?因为python被说的出神入化,掌握了有史以来最优秀的C语言(几乎所有操系统都是由C语言编写的)及扩展的C++语言,总觉得还差点什么,或许python是一个好的选择,Python语言可以作为胶水语言,可以方便的嵌入C/C++。in a word,we need python!标识符第一个字符必须是字母表中字母或下划线_。 标...

2018-08-30 15:38:04 271

原创 C++ 简单socket服务器实现文件list

参考网上的实现方式,先实现一个初始的SOCKET类及客户端,服务器的继承类,后续打算实现C++ epoll的框架。现在把文件贴在下面基类Socket.h, Socket.cpp#ifndef _E_SOCKET_H_#define _E_SOCKET_H_#include <iostream>#include <netdb.h>#include &l...

2018-08-26 18:20:00 1119 1

原创 C++ 友元函数的使用&重载“输入输出”运算符

友元函数形式friend 类型名 友元函数名(形参表);然后在类体外对友元函数进行定义,定义的格式和普通函数相同,但可以通过对象作为参数直接访问对象的私有成员说明如下1)必须在类的说明中说明友元函数,说明时以关键字friend开头,后跟友元函数的函数原型,友元函数的说明可以出现在类的任何地方,包括在private和public部分;2)注意友元函数不是类的成员函数,...

2018-08-25 17:02:53 7037

转载 C++必须使用【初始化列表】初始化数据成员的三种情况

转自: https://blog.csdn.net/sinat_20265495/article/details/53670644 类对象的构造顺序是这样的:1.分配内存,调用构造函数时,隐式/显示的初始化各数据成员;2.进入构造函数后在构造函数中执行一般赋值与计算。使用初始化列表有两个原因:原因1.必须这样做:《C++ P...

2018-08-25 15:49:41 1635

原创 C++ 模板显示具体化

摘自C++ primer plus 中文第六版 如果不考虑向后兼容的问题,并愿意键入较长的单词,声明参数是应该使用typename而不是class。模板显示具体化对于给定的函数名,可以有非模板函数,模板函数和显示具体化模板函数集他们的重载 版本。 显示具体化的原型和定义应该以template<>打头 ,并通过名称来指出类型。 具体化优先于常规模板,而非模板函数优先于具体化...

2018-08-25 14:40:26 1711

转载 C++ 函数模板

转载自: https://blog.csdn.net/lezardfu/article/details/56852043 Template 基础篇-函数模板Template所代表的泛...

2018-08-25 13:38:18 162

原创 C++ 函数重载

一、函数重载:重载函数是函数的一种特殊情况,为方便使用,C++允许在同一范围中声明几个功能类似的同名函数,但是这些同名函数的形式参数(指参数的个数、类型或者顺序)必须不同,也就是说用同一个运算符完成不同的运算功能。这就是重载函数。重载函数常用来实现功能类似而所处理的数据类型不同的问题。但是重载函数的返回值类型可以不同。两个重载函数必须在下列一个或两个方面有所区别:1、函数的参数个数不同...

2018-08-25 11:48:14 397

原创 linux主机序与网络序的转换

在网络通信中,经常用到字节序转换,实际上内核已经帮我们实现了两套通用的转序宏定义,但是在转换过程中,都是进行主继续与网络序的转换,代码难免冗余,我们可以根据已经提供的特性,来添加一些执行规则,这样就可以用一个转序函数实现两种转序,例如,htonl,既可以实现原htonl的功能,也实现了ntohl的功能,不用写两套转换函数,只需要将转序函数重新定义一个名字就可以。定义如下,未实测。实现的规则就是...

2018-08-18 20:56:35 1644

原创 linux获取时间,精确到微秒usec

包含系统头文件:#include <sys/time.h>用到的接口:int gettimeofday(struct timeval *tv, struct timezone *tz);计算时间间隔,精确到微秒:1.首先获取任务起始时间值,使用上述接口,也可以封装,并记录到微秒2.中途执行其他任务3.再次获取任务结束时间值,使用上述接口,也可以简单封装4....

2018-08-18 20:21:48 5692

转载 一个优秀的C++学习博客(二)

源自CSDN博客:wu_123_456 https://my.csdn.net/wu_123_456C/C++日常学习总结(第一篇)const用法及printf的执行顺序 C/C++日常学习总结(第二篇)结构体和类的大小及区别&为什么是new一个对象而不是malloc C/C++日常学习总结(第三篇)不能重载的运算符和不同基类继承产生的二义性 C++日常学习总结(第四篇)共同基...

2018-08-18 13:27:53 246

转载 C++实战项目:坦克大战(一)

转自:https://blog.csdn.net/qq_26046771/article/details/66472045                         &nbs...

2018-08-14 20:43:11 2749 2

转载 一个优秀的C++学习博客

 C++ Primer学习笔记——$24 C++中不可移植的语言特性2011-01-19 15:18 阅读(155) 评论(0) C++ Primer学习笔记——$23 嵌套类、局部类和联合2011-01-19 15:17&n...

2018-08-14 20:36:58 857

转载 C++学习 ——STL之vector(三)常用函数

转自:https://blog.csdn.net/ac_hexin/article/details/52027405介绍这篇文章的目的是为了介绍std::vector,如何恰当地使用它们的成员函数等操作。本文中还讨论了条件函数和函数指针在迭代算法中使用,如在remove_if()和for_each()中的使用。通过阅读这篇文章读者应该能够有效地使用vector容器,而且应该不会再去使用C类型...

2018-08-14 20:25:58 374

转载 C++ 学习——STL之vector(二)

转载自:https://blog.csdn.net/ac_hexin/article/details/52025684 1. 空间运用灵活性        vector与数组的唯一差别就在于空间运用的灵活性。ve...

2018-08-14 20:22:31 214

转载 C++学习——STL之vector(一 )

转载自:http://blog.csdn.net/pandy1110/article/details/5963908 C++内置的数组支持容器的机制,但是它不支持容器抽象的语义。要解决此问题我们自己实现这样的类。在标准C++中,用容器向量(vector)实现。容器向量也是一个类模板。标准库vector类型使用需要的头文件:#include <vecto...

2018-08-14 20:07:32 128

转载 C++ 学习——STL之map介绍

转载自:https://blog.csdn.net/liitdar/article/details/80009712 本文主要介绍map的概念及用法。1. 概念map是STL的一个关联容器,它提供一对一的数据处理能力。map对象是模板类,需要关键字和存储对象两个模板参数,其中第一个参数称为关键字,每个关键字只能在map中出现一次;第二个参数称为该关键字的值,可理...

2018-08-14 19:56:32 409

转载 搞定linux上MySQL编程(二):MySQL语法基础操作

转自:https://blog.csdn.net/shallnet/article/details/46483699【版权声明:尊重原创,转载请保留出处:blog.csdn.net/shallnet,文章仅供学习交流,请勿用于商业用途】 sql(structured query language)是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。 sq...

2018-08-14 19:32:14 123

转载 MySQL学习(一、概述和表的基本操作)

转自:https://blog.csdn.net/qq_38741971/article/details/80575835一、数据库概念    数据库(Database:DB):数据库是按照数据结构啦组织、存储和管理数据的仓库--->数据库其实就是磁盘中的文件+管理系统    数据库管理系统(Database Management System:DBMS)是专门用于管理数据库的计算...

2018-08-14 19:27:09 115

原创 创建HASH的一个模板,以Linux内核hash_list为例

百度百科:散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。给定表M,存在函数f(key),对任意给定的关键字值key,代入函数后若能得到包含该关键字的记录在表中的地址,则称表M为哈希(Hash)表,函数f(k...

2018-08-01 22:11:43 779

消息队列的简单例子msgque

用于博客资源绑定

2024-05-05

Qt坐标系转换(绘制逻辑坐标系)

本资源为Qt绘图基础,世界坐标系转换为逻辑坐标系。世界坐标系原点在视图左上角,本例子通过世界坐标转换,将坐标原点定位在视图中央,Y轴向上,X轴向右,并绘制坐标轴,基于逻辑坐标系下的绘图,可将转换关系函数取消生效,对比世界坐标系下的绘图。 重写PainterEvent函数: void QtPixPainter::paintEvent(QPaintEvent* event) { QPainter painter(this); // 反走样 painter.setRenderHint(QPainter::Antialiasing, true); //物理坐标系与逻辑坐标系的转换,如果不转换,下面的绘图都是在世界坐标系下 setWorldTransform(painter); // 其他一些绘制矩形,多边形的例子,经过上面转换,都是在逻辑坐标系下 drawRectScale(painter); //draw_shearRect(painter); //利用rotate()函数进行比例变换,实现缩放效果 //draw_rotate_act(painter); //draw_by_save_restore(painter); //transform_draw_SinX(painter); transform_draw(painter); local_drawConvexPolygon(painter); } // 将世界坐标(原点左上角)转换为逻辑坐标(原点在屏幕中间) QPointF QtPixPainter::mapToScene(const QPointF& point) { QTransform transMatrix = _transform.inverted(); //翻转矩阵? return transMatrix.map(point); //将点piont映射到transMatrix定义的坐标系中来 } // 将鼠标的逻辑位置返回并以标签形式展示 void QtPixPainter::mouseMoveEvent(QMouseEvent* event) { QString msg; QPointF mouse_po = mapToScene(event->pos()); //总是返回屏幕物理坐标系 double x = mouse_po.x(); // 总是返回屏幕物理坐标系 double y = mouse_po.y(); QString str = "(" + QString::number(x) + "," + QString::number(y) + ")"; //qDebug()<<"world x = "<pos().x()<<",world y = "<pos().y(); m_mouse_lable->setText(str); }

2021-05-26

Python实现可配置的sftp传输

该资源为python实现可配置的sftp传输,get和put 配置文件为.ini文件;put和get区分一下源和目的路径,基本配置项即说明如下: [ftp]:ftp基本信息 [common] 公共的配置 如日志信息,传输模式,是否递归,是否删除等 [src_path] 源路径信息,如果是get,此项为远端目录,如果是put,为本地目录 [src_rule] 原始文件名规则,为python正则表达式 如果要按文件名规则获取,此项需要配置 [dest_rule]目标文件名规则,一般可以不配置,不配置值应为NULL [wrok_space] 本地临时工作目录,get的时候此目录为目标目录,此目录的目的是为了后续方便继续传输和分发到其他路径或主机 [dest_path] 如果未get,此路径为二次分发配置,如果是put,此目录为远端目录 [bak_path] 备份路径 二次分发程序使用 参考配置及代码即可完成配置使用 (ZIP压缩包无需密码)

2020-05-20

C实现单聊与群聊(网络编程)

C语言编写的简单聊天工具,单聊,群聊。 多线程,信号,网络编程等。

2018-08-25

空空如也

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

TA关注的人

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