- 博客(35)
- 收藏
- 关注
转载 boost asio网络编程
基本概念asio基于两个概念: I/O服务,抽象了操作系统的异步接口boost::asio::io_service::service: boost::asio::io_service I/O对象,有多种对象boost::asio::basic_io_object: boost::asio::ip::tcp::socket boost::asio::ip::tcp...
2019-06-17 09:44:53
1852
转载 redis:网络编程
Redis在anet.h和anet.c中封装了底层套接字实现:1.anetTcpServer,建立网络套接字服务器,完成对socket(),bind(),listen()等操作的封装,返回socket的fd。int anetTcpServer(char *err, int port, char *bindaddr){ int s; struct sockaddr_i...
2019-06-13 11:09:19
248
转载 Redis:ae事件模型
1.Redis的事件模型库大家到网上Google“Redis libevent”就可以搜到Redis为什么没有选择libevent以及libev为其事件模型库,而是自己写了一个事件模型。 从代码中可以看到它主要支持了epoll、select、kqueue、以及基于Solaris的event ports。主要提供了对两种类型的事件驱动:1.IO事件(文件事件),包括有IO的读事件和写事件。2...
2019-06-13 10:57:36
873
转载 QT多线程使用moveToThread
使用线程有两种方法:一、平时我们使用线程的时候一般是继承QThread,实现它的run()函数,将需要在线程执行的代码放在run()里边运行。如果需要在线程 { while(bRun)//如果需要退出线程就将bRun设置为false. { qDebug()<<"run thread ID = "<<QThread::c...
2019-06-10 14:27:37
1371
转载 多线程使用libcurl
用libcurl一段时间遇到莫名其妙的程序崩溃的情况,开始觉得是线程栈溢出导致的段错误,专门增加了线程栈的大小,还是有问题。线程也是分离的。用valgrind定位到问题可能出现在curl的调用上。排查的时候也发现了libcurl一些额外的坑,现做个总结笔记。1.、线程使用libcurl访问时,设置了超时时间,而libcurl库不会为这个超时信号做任何处理,信号产生而没有信号句柄处理...
2019-06-03 10:27:11
481
转载 cmake的使用总结
https://blog.csdn.net/wzzfeitian/article/details/40963457CMakeLists.txt例子cmake_minimum_required(VERSION 2.8) #set(CMAKE_C_COMPILER "D:\VS2008Release\VC\bin\amd64")#set(CMAKE_CXX_COMPILER "D:\V...
2019-04-17 11:06:20
217
转载 OPC客户端的建立
原文:https://blog.csdn.net/wuyijc/article/details/6987510一.导入OPC官方文件。我首先在VC6.0中建立一个基于对话框的项目,在项目中加入了4个文件"opcda_i.c"OPC数据存取接口"opcda.h"OPC数据存取2.0头文件"opccomn_i.c"OPC公共接口定义"...
2019-04-15 10:43:35
1042
转载 OPCServer 提供的全部接口说明
http://www.dqjsw.com.cn/dianqi/OPC/301.html1.What is OPC?OPC是OLE for Process Control的缩写。顾名思义,OPC是一种利用微软的COM/DCOM技术来达成自动化控制的协定,根据OPC Specification 的定义,OPC is "a standard mechanism for communicating t...
2019-04-15 10:23:13
2335
转载 如何使用KepServerEx进行数据模拟
https://blog.csdn.net/lordwish/article/details/79464090
2019-04-15 10:12:05
2972
原创 c++11中线程池和定时器的使用
简介本篇文章主要介绍线程池和定时器的混合使用,实现多线程的时间调度线程池:一种线程的使用模式,线程过多会带来调度开销,进而影响缓存局部性和整体性能。而线程池维护着多个线程,等待着监督管理者分配可并发执行的任务。这避免了在处理短时间任务时创建与销毁线程的代价。线程池不仅能够保证内核的充分利用,还能防止过分调度。可用线程数量应该取决于可用的并发处理器、处理器内核、内存、网络sockets等的数...
2019-02-17 15:07:27
1961
原创 C#中关于文件读写的若干问题及总结
很久没有写博客了,之前很长一段时间忙于毕设和找工作,现在工作了,觉得自己还有很多不足,书到用时方恨少,在进行项目时会遇到很多问题,感谢各位博客大牛的技术分享,也顺利完成了自己的功能任务,下面针对C#中文件读写问题进行一些总结。1.最简单的一种文件拷贝和剪切方式 string SourcePath =“源文件全路径”;string TargetPath = “目标文件全路径”;...
2018-07-27 15:57:45
475
原创 QT 基于TCP协议的网络通信
QT下基于TCP协议的网络通信分为服务端和客服端程序两部分,与之前写的C网络通信不同的是QT下服务器端只需要定义一个服务器对象和用来进行通信的TcpSocket,只需通过监听和连接实现与客服端的连接;客服端中需要定义一个Tcpsocket,通过connectToHost(IP,端口号)进行连接。部分源代码如下:服务器端:widget.h#ifndef WIDGET_H#define WIDGET_...
2018-04-06 15:11:48
1111
原创 C++ :用multimap编写简单的通讯录小程序
#include <iostream>#include <map>#include <string>#define FALSE 0#define TRUE 1using namespace std;class User{public: User(int id,string name ,string tel) { this->id =id; this-&...
2018-03-25 21:03:12
382
转载 程序内存空间(代码段,数据段,堆栈段)
点击打开链接心得:常量区(常量区中有的常量在常量数据段,有的在代码段,但有的常量如:const修饰的局部常量并没有放在常量区中),例如:局部变量 char a[ ]="hello","hello"字符串常量存在数据段中,而char *b="hello",此时“hello”字符串常量在代码段中,你可以使用 a[1]='w'改变数组a的值,但是你不能通过指针操作即b[1]='w'改变指针指向常量的值,...
2018-03-21 21:47:23
727
原创 Linux下 基于TCP协议下的C/S架构的网络聊天室 C程序
一、 实现目标 一个在 Linux 下可以使用的聊天软件,要求至少实现如下功能: 1. 采用 Client/Server 架构 2. Client A 登陆聊天服务器前,需要注册自己的 ID 和密码 3. 注册成功后,Client A 就可以通过自己的 ID 和密码登陆聊天服务器 4. 多个 Client X 可以同时登陆聊天服务器之后,与其他用户进行通讯聊天 5. Client A 成功登陆后...
2018-03-21 19:27:49
1913
1
原创 C++ string类的封装
//mystring.h 头文件#ifndef _MYSTRING_H_#define _MYSTRING_H_#include <iostream>using namespace std;class String{ friend ostream& operator<<(ostream &out,String &str);public: Stri...
2018-03-21 18:59:06
1871
原创 动态数组类的封装
//MyArray.h 头文件#ifndef _MYARRAY_H_#define _MYARRAY_H_#include <iostream>using namespace std;class Array{ friend ostream& operator<<(ostream& out, Array &a);private: double *m_...
2018-03-21 15:33:30
526
原创 电子通讯录项目
制作一个电子通讯录,通过该通讯录存放好友ID号,姓名(英文),手机号,家庭住址,公司电话,并完成指定功能。 功能模块:主界面:菜单:1)添加好友信息(要求:ID不能相同,相同报错,重新输入,添加成功后提示) 2)列表好友信息(要求:按姓名首字母升序排序) ...
2018-03-04 16:57:01
716
原创 停车场项目 停放栈 让路栈 等候队列
停车场项目需求问题描述:停车场是一个能放 n 辆车的狭长通道,只有一个大门,汽车按到达的先后次序停放。若车场满了,车要停在门 外的便道上等候,一旦有车走,则便道上第一辆车进入。当停车场中的车离开时,由于通道窄,在它后面的车 要先退出,待它走后在依次进入。汽车离开时按停放时间收费。基本功能要求: (1)建立三个数据结构分别是:停放栈、让...
2018-03-04 16:49:47
390
原创 排序: 冒泡排序 直接插入排序 直接选择排序 希尔排序
#include<stdio.h>#include<stdlib.h>#include<time.h>#define TRUE 1#define FALSE 0typedef int Status; int countr=0,countc=0;#define MAXSIZE 1000 /* 用于要排序数组个数最大值,可根据需要修改 */typedef struc...
2018-02-19 23:00:01
425
原创 用标准i/0 测文件大小(程序)
#include<stdio.h>#include<stdlib.h>#include<errno.h>int main (int agrc ,char *agrv[ ]){ FILE *fp; int ptr[20]; if((fp=fopen("slist.c","rb"))==NULL){ perror("error:"); ..
2018-02-15 14:19:51
316
原创 标准i/0实现Linux中cp功能
#include <stdio.h>#include <string.h>#include <errno.h>#include< stdlib.h>#define MAXSIZE 2048int main(int agrc ,char ** agrv[ ]){ FILE *from_fd; FILE * to_...
2018-02-15 13:16:55
487
原创 利用文件操作的系统调用 实现 Linux 中的cp 功能
#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <stdio.h> #include<stdlib.h>#include <errno.h>#include<string.h>#define MAXSIZE 1024 int
2018-02-14 20:05:02
617
原创 单链表实现通讯录功能
#include #include #include #define MAX 100#define TRUE 1#define FALSE 0#define Status inttypedef struct /*定义结构体类型 为 DataType*/{char nam
2018-02-03 18:54:42
881
原创 static 作用与说明 局部变量与全局变量
在c语言中static的作用如下第一、在修饰变量的时候,static修饰的静态局部变量只执行一次,而且延长了局部变量的生命周期,直到程序运行结束以后才释放。 第二、static修饰全局变量的时候,这个全局变量只能在本文件中访问,不能在其它文件中访问,即便是extern外部声明也不可以。 第三、static修饰一个函数,则这个函数的只能在本文件中调用,不能被其他文件调用。Static
2018-01-31 22:48:52
3697
原创 利用线性表编写简单的通讯录程序
#include #include #include #define MAX 100#define TRUE 1#define FALSE 0#define Status inttypedef struct node{char name[12];char addr[40];char mphone[12];char tel[14];
2018-01-31 22:40:25
3940
1
原创 编写程序,打印任意行数的菱形星号组合
设计思路:确定一个二维坐标x轴,y轴,菱形的“*”关于y轴对称,只需写出y轴右半平面的程序以此类推,完成要求。通过找出“*”的x坐标与y坐标的关系,依次改变y的值得到x值,循环输出"*"和“ ”,完成编程。#include#includeint main(){ int y,x,m,h; printf("请输入菱形行数:");scanf("%d",&h);
2018-01-26 19:43:17
1440
原创 输入一个整数n,求从1到n这n个整数的十进制表示中1出现的次数。(google面试题)
该程序可以统计 1-n 任意输入值中1出现的次数,主函数进行1-n 个数的循环,通过取余实现对数字1的计数。程序如下: #include int main() { int i,a,b,n; int j=0; printf("请输入一个数:"); scanf("%d",&n); for(i=1;i {b=i;while(b!
2018-01-26 19:03:57
806
转载 linux中标准输入,标准输出,标准错误输出及管道的使用
文本流文件用于数据的存储,相当于一个个存储数据的房子。我们之前说,所谓的数据是0或者1的序列,但严格来说,Linux以字节(byte)来作为数据的单位,也就是说这个序列每八位(bit)为一个单位(八位二进制对应的十进制范围为0到255)。使用ASCII编码,可以将这样一个字节转换成为字符。所以,在Linux中,我们所说的数据,完全可以用字符表达出来,也就是说文本(text)的形式。实际上,
2018-01-23 12:20:07
8390
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人