
c++
文章平均质量分 62
其实我不胖_csdn
这个作者很懒,什么都没留下…
展开
-
c++ winsocket select(八)
1 带宽破2M,去掉打印语句2 select 可以实现无阻赛二 代码1mysocket.h#include <Winsock2.h>#include<vector>#include"mythread.h"const int RECEIVE_BUF_SIZE = 10240;const int DATA_BUF_SIZE = 102400;cla...原创 2020-02-24 11:32:27 · 270 阅读 · 0 评论 -
c++ winsocket (七)
一 问题 1 打开一个客户端不停地发包,资源监视器的网络IO 显示 1M/s的流量,再打开一个客户端,还是1M/s的流量,而且其中一个客户端会停止发包,过一会又会发包。 回答: 因为 winsocket默认是阻塞的,accept() ,receive是阻塞函数,当receive没有收到 数据时,程序不会继续往下执行,当socket缓冲区的数据满了,会阻止客户端发送数据。...原创 2020-02-09 10:59:44 · 264 阅读 · 0 评论 -
c++ 获取代码执行时间
#include <windows.h>#include<iostream>class CELLTimestamp{public: CELLTimestamp() { QueryPerformanceFrequency(&_frequency); QueryPerformanceCounter(&_s...原创 2020-02-04 22:24:57 · 302 阅读 · 0 评论 -
c++ winsocket (六)
一 : 问题 1 增加 数据包头 结构体 2 正确把握指针 。 发送时用 字符指针,接收也用字符指针, 打印时,要把指针转化成对应的数据类型的指针。 printf("cmd =%d,datalength=%d,username=%s,password=%s\n", *((int*)(&receiveBuf[0])),*((int *)(&...原创 2020-02-03 17:40:13 · 245 阅读 · 0 评论 -
c++ winsocket (四)
一 : 添加 线程类 1 线程函数规定 ,回调函数不能是类的成员,所以回调函数必须是静态函数。 2 静态函数不能定义成虚函数 或 提示不能使用继承成员重写,所以要在线程类中定义一个run函数,在回调函数中调用二 代码:1mythread.hclass MyThread {public: MyThread(){ }; ~MyThread(){...原创 2020-02-01 21:07:49 · 192 阅读 · 0 评论 -
c++ winsocket (三)
一 问题1 服务器只能连接一个客户端 先在 accept外层加一个 while循环不停地接受客户端连接 在receive函数放到线程_beginthread 函数里二代码1mysocket.hconst size_t IP_BUF_SIZE = 65;class MySocket{public: SOCKET m_socket; SOCKET...原创 2020-01-31 16:49:03 · 224 阅读 · 0 评论 -
c++ winsocket(二)
一 问题:1 客户端调用两次send函数,服务器只会接受一次,服务器就会断开本次连接。 解决方法在服务器端的 recv方法一个死循环.二代码1mysocket.hconst size_t IP_BUF_SIZE = 65;class MySocket{public: SOCKET m_socket; SOCKET m_con;public: void i...原创 2020-01-31 10:54:02 · 298 阅读 · 0 评论 -
c++ winsocket(一)
一 注意问题: 1: recv函数 int recv( _In_ SOCKET s, _Out_ char *buf, _In_ int len, _In_ int flags); 第三个参数指明buf的长度; len = sizeof(buf), 而不用 len=strlen(buf) 。 2: 服务器端的send函数的第一个参数用ac...原创 2020-01-30 17:58:05 · 228 阅读 · 0 评论 -
c++ 单例模(一)
一: 单例模式的作用:一般数据库的连接对象只有一个,这个时候就需要用到单例模式二 :单例的特点: 1 单例的构造函数是私有成员 2 有一个静态成员变量 3 有 一个静态成员函数三:代码#include<iostream>#include<windows.h>class Mysql{public:Mysql(){ std::cout<...转载 2019-07-21 11:31:37 · 113 阅读 · 0 评论 -
c++ 单例模(二)
一个类的写法: 在单例类中定义指向自己的静态指针代码:#include<iostream>#include<windows.h> class Mysql{public: static Mysql * obj; //在单例类中定义指向自己的静态指针 static Mysql * get_singleton(){ if(obj == NUL...转载 2019-07-21 18:17:51 · 128 阅读 · 0 评论 -
c++单例模式模(三)
一:直接初始化单例静态对象二:代码 #include<iostream>#include<windows.h> class Mysql{public: static Mysql * obj; //在单例类中定义指向自己的静态指针 static Mysql * get_singleton(){ return obj; }pr...转载 2019-07-21 18:22:37 · 118 阅读 · 0 评论 -
c++ 单例模(四)
一: 把单例定义成成员函数中的局部静态变量对象二:代码#include<iostream>#include<windows.h> class Mysql{public: static Mysql * get_singleton(){ static Mysql obj; //把单例定义成成员函数中的局部静态变量对象 return ...转载 2019-07-21 18:35:57 · 152 阅读 · 0 评论 -
C++单例模(五)
一 : 用模板类实现单例模式二:代码#include<iostream>#include<windows.h> template<class T,typename X = void>//题外话:typename 和class 可以简单认为差不多 。void是默认值class Singleton{public: static T * g...转载 2019-07-21 21:21:20 · 126 阅读 · 0 评论 -
c++ 时间函数
代码:#include <iostream>;#include <windows.h>#include<time.h>#include<string.h>void main(){ std::ostream &os =std::cout; struct tm *tm; time_t nottime_stamp = tim...转载 2019-07-25 23:09:05 · 513 阅读 · 0 评论 -
c++ 文件写入
#include<iostream>#include<windows.h>#include <fstream>void main(){ std::ofstream m_filestream ; std::ostream &os = m_filestream; m_filestream.open("test.txt",std::ios::a...原创 2019-08-11 22:12:34 · 195 阅读 · 0 评论 -
c++友元类
一:问题 1 提问:如何在一个类B的对象中访问一个类A的私有成员? 2 回答:在类A中设置友元类B 且 类B中有一个成员的类型是A二: 代码#include<iostream>#include<windows.h>class Player{private : int m_id; int m_cardnumber; f...原创 2019-07-21 09:44:50 · 156 阅读 · 0 评论 -
c++中的友元函数
一:如何在一个全局函数B中访问一个类A中的私有成员? 回答:在类A中定义一个友元函数B。二 代码举例:#include<iostream>#include<windows.h>class Player{private : int m_id; int m_cardnumber; friend void change_cardnumb...原创 2019-07-20 22:37:03 · 103 阅读 · 0 评论 -
二分查找
一 : 二分查找 (递归实现)1 显示效果:2 代码#include "windows.h"#include "iostream"using namespace std;void FindKey(int * a ,int start, int end , int key){ int i = start; int j = end; int middle =原创 2017-03-08 22:05:57 · 217 阅读 · 0 评论 -
WriteConsoleOutput(二)
如何在控制台输出有颜色的字符?原创 2016-12-29 13:42:57 · 1580 阅读 · 0 评论 -
WriteConsoleOutput(三)
如何在控制台的中间显示 HELL WORDL! 的字符串 ?原创 2016-12-29 14:42:23 · 3756 阅读 · 0 评论 -
控制台在指定位置画矩形,写字符串,画直线
#include #include #includeusing namespace std;#define LINE 12 //控制台的13行(第一行为0,第二行为1)#define COLUNM 35 //控制台的36列(第一列为0,第二列为1)/**@paramch: 要输入的字符posLine : 字符所在行的位置posColu原创 2016-12-29 23:00:32 · 1766 阅读 · 0 评论 -
控制台光标(一): 隐藏光标
#include #include void main(){HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);CONSOLE_CURSOR_INFO CursorInfo;GetConsoleCursorInfo(handle, &CursorInfo);//获取控制台光标信息CursorInfo.bVisible = fa原创 2017-01-03 11:18:40 · 16961 阅读 · 0 评论 -
控制台光标(二):设置光标位置
如何让光标在控制台中间位置显示?一 效果展示二 代码#include #include void main(){COORD pos = { 40, 13 };SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), pos);getchar();}原创 2017-01-03 15:45:11 · 4479 阅读 · 0 评论 -
控制台绘制登陆框(二):TAB切换
如何在控制台响应键盘事件,实现TAB切换功能?一:效果展示:当切换到LOGIN按钮时,按钮颜色从绿变蓝,当离开LOGIN按钮时,按钮颜色恢复成绿色。二代码#include #include #include #include #define KEY_TAB 9#define BACKGROUND_BlACK 0#define BA原创 2017-01-04 14:00:58 · 910 阅读 · 1 评论 -
控制台绘制登陆框(一)
一效果展示二代码#include #include #include #include #define KEY_TAB 9#define BACKGROUND_BlACK 0#define BACKGROUND_WHITE 255using namespace std;typedef struct myinput{int height;原创 2017-01-03 17:33:48 · 386 阅读 · 0 评论 -
控制台绘制登陆框(三): TAB切换的改进
TAB切换的改进一 效果展示:效果图同上篇 >一致。二代码#include #include #include #include #define KEY_TAB 9#define BACKGROUND_BlACK 0#define BACKGROUND_WHITE 255using namespace std;typedef struct原创 2017-01-05 14:39:48 · 255 阅读 · 0 评论 -
两次调用_getche()函数识别扩展按键
一:哪些属于扩展按键?键盘上的扩展按键: F1~F10 , F11, F12, ,上下左右方向键 , Insert ,HOME, PageUp,Delete, End ,PageDown等键二 :效果展示三代码#include #include #include using namespace std;// 48// 99// 65原创 2017-01-05 17:12:21 · 706 阅读 · 0 评论 -
关于string的操作
#include #include #include using namespace std;void main(){string str("HELLO");char ch = 'a'; string::iterator it;//字符长度cout //增加字符it = str.begin() +2;// 在 string 字符原创 2017-01-06 16:07:43 · 332 阅读 · 0 评论 -
控制台绘制登陆框(四) 实现简单的字符输入
一功能说明1 实现用户名输入框,密码输入框可以输入字符,删除字符,通过按下左右键移动光标,输入的字符不能超过20个字符2 实现简单的登陆验证:当用户将光标切换到login按钮上时,按下回车键可以验证用户输入的用户名密码是否正确二 效果展示三代码#include #include #include #include #define KEY_原创 2017-01-06 17:25:23 · 414 阅读 · 0 评论 -
c++ this指针
this 指针 实现 子类 地址 赋值给 父类指针原创 2017-03-02 20:48:20 · 283 阅读 · 0 评论 -
c++ 设计模式(一) 代理模式
c++ 代理设计模式原创 2017-03-03 20:46:28 · 322 阅读 · 0 评论 -
c++ public继承 和 private继承
一 : c++ public继承1 显示效果:2 代码#include "windows.h"#include "iostream"using namespace std;class A{protected: void test() { cout << "A类test函数调用" << endl; }public : void run() { cou原创 2017-03-07 11:42:14 · 407 阅读 · 0 评论 -
WriteConsoleOutput(一)
如何用WriteConsoleOutput改变控制台背景颜色?原创 2016-12-29 10:54:10 · 1915 阅读 · 1 评论