- 博客(67)
- 资源 (3)
- 收藏
- 关注
转载 windows下设置socket的connect超时
变相的实现connect的超时,我要讲的就是这个方法,原理上是这样的:1.建立socket2.将该socket设置为非阻塞模式3.调用connect()4.使用select()检查该socket描述符是否可写(注意,是可写)5.根据select()返回的结果判断connect()结果6.将socket设置为阻塞模式(如果你的程序不需要用阻塞模式的,这步就省了,不过一般情况下
2013-05-13 08:17:46
4758
转载 win32串口 API
2-CreateFile() 用途:打开串口 原型:HANDLE CreateFile(LPCTSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDistribution, DWORD
2013-05-12 17:29:34
1383
转载 Windows下的Win32串口编程
在工业控制中,工控机(一般都基于Windows平台)经常需要与智能仪表通过串口进行通信。串口通信方便易行,应用广泛。 一般情况下,工控机和各智能仪表通过RS485总线进行通信。RS485的通信方式是半双工的,只能由作为主节点的工控PC机依次轮询网络上的各智能控制单元子节点。每次通信都是由PC机通过串口向智能控制单元发布命令,智能控制单元在接收到正确的命令后作出应答。 在Win32下,可以
2013-05-12 17:29:05
1343
原创 qt,spinbox slider
#include #include int main(int argc,char * argv[]){ QApplication app(argc,argv); QWidget * window = new QWidget; window->setWindowTitle("Enter your age"); QSpinBox * spinBox = new
2013-05-08 10:04:43
1541
转载 Qt标准对话框之QMessageBox
好久没有更新博客,主要是公司里面还在验收一些东西,所以没有及时更新。而且也在写一个基于Qt的画图程序,基本上类似于PS的东西,主要用到的是Qt Graphics View Framework。好了,现在还是继续来说说Qt的标准对话框吧! 这次来说一下QMessageBox以及类似的几种对话框。其实,我们已经用过QMessageBox了,就在之前的几个程序中。不过,当时是大略的说了一下,现在
2013-05-08 09:00:01
1061
转载 TCP/IP-心跳包
心跳包就是在客户端和服务器间定时通知对方自己状态的一个自己定义的命令字,按照一定的时间间隔发送,类似于心跳,所以叫做心跳包。 用来判断对方(设备,进程或其它网元)是否正常运行,采用定时发送简单的通讯包,如果在指定时间段内未收到对方响应,则判断对方已经离线。用于检测TCP的异常断开。基本原因是服务器端不能有效的判断客户端是否在线,也就是说,服务器无法区分客户端是长时间在空闲,还
2013-03-19 11:08:08
1706
转载 const char to LPCTSTR不能转化问题
const char to LPCTSTR不能转化问题 Visual C++ 2008里cannot convert parameter 1from 'const char [13]' to'LPCTSTR'造成不能运行的原因主要是2005和2008中增加了一些参数类型的安全性检查,所以通常在6.0没有问题的LPCTSTR与const char之间的转换到了这里就玩不转。微软给出的解决
2013-03-19 10:16:25
1007
转载 windows网络编程之socket中的非阻塞connect()与getsockopt()
在最近看的omap监控代码中有一段: int error=-1, len; len = sizeof(int); timeval tm; fd_set set; unsigned long ul = 1; ioctlsocket(mSocket, FIONBIO, &ul); //设置为非阻塞模式 bool ret
2013-03-18 18:36:42
15323
转载 Socket实现非阻塞连接
#include #include #include #include #pragma comment(lib, "ws2_32.lib") #define TIME_OUT_TIME 20 //connect超时时间20秒void geturl(char *url) { WSADATA WSAData={0}; SOCKET s
2013-03-18 18:35:42
1514
转载 获取线程ID
在linux中没有像获取进程ID的方法(getpid()),所以我们需要自己定义,需要调用syscall(),因此要包含头文件syscall.h,具体的方法如下: #include #define gettid() syscall(__NR_gettid) 然后我们就可以用宏gettid()获取线程的ID。
2013-03-13 13:35:54
870
转载 bahuanghou
八皇后:皇后可以在横、竖、斜线上不限步数地吃掉其他棋子。如何将8个皇后放在棋盘上(有8*8个方格),使它们谁也不能被吃掉!这就是著名的八皇后问题。这个程序我看不懂.哪位朋友能我注释一下.谢谢!#include "stdio.h"int count;int queen [10], column[20],left[20],right[20];/* 函数功能:打印出八皇后的结果*/
2013-03-08 16:57:22
850
原创 1.第七章,有点迷糊,改天再看下
因为第六章的后面输出流格式化看着太麻烦了,所以先跳到第七章开始看C默认const是外部连接,c++默认const为内部连接。:所以c里面会对const variable分配内存,c++则在出现extern 或者对const 变量进行取地址时才为其分配内存空间。内连接和外连接的区别 const variable在定义时必须初始化,是文件内部可见。这是因为c++中
2013-03-08 09:01:39
1032
原创 mmap实现大文件复制
#include #include #include #include #include #include #include #include #define BUF_SIZE 4096 int main(int argc,char *argv[]){ int fd_r,fd_w; char * p_w,*p_r ; char buf[BUF_SIZE]; int
2013-03-07 17:18:40
3297
原创 1.第六章2
每种输入输出流多有一个概念,“下一个”字符来自哪里(若是输入流)或去哪里(若是输出流)。在某些情况下,可以需要移动这个流的位置,可以用两种方法处理:第一种方式是在流里绝对定位,叫流定位。第二种方式像标准C库函数fseek()函数那样做,从文件的开始,结尾或者当前位置移动给定数目的字节。流定位(streampos)方法要求先调用"tell"函数:对一个输出流用tellp()函数,对一个输入流用t
2013-03-07 10:56:21
1068
原创 1.第六章
1.操纵算子:一个被称为endl的操纵算子,一个操纵算子作用于流上,这种情况下,插入一新行并清空流(消除所有存储在内部流缓冲区的还没有输出的字符)。也可以只是清空流: cout另有一个基本的操纵算子把基数变为oct(八进制),dec(十进制),hex(十六进制):cout2.文件输入输出流cin.get()用法1: cin.get(字符变量名)可以用来接收字符#incl
2013-03-06 15:28:11
661
原创 1.第五章
1.在C++中,还有另一个愿意需要对函数名进行重载:构造函数。因为构造函数的名字预先由类的名字确定,所以只能由一个构造函数名,但是如果我们想用几种方法来创建一个对象时该怎么办呢?所以重载函数的本质就是允许函数同名。2.函数重载允许多个函数同名,但是还可以以不同的方法调用同一函数。C++中有一个很通用的做法叫缺省参数,缺省参数就是在用户调用一个函数时,没有指定参数,用来调用同一函数。这样
2013-03-06 09:03:39
825
原创 1,第四章
初始化与清除:1.在c++中,初始化太重要了,所以不能留给用户来完成。类的设计者可以通过提供一个叫构造函数的特殊函数来保证每个对象都正确初始化。如果一个类有了构造函数,编译器在创建对象时就自动调用这一函数,这一切都是在用户使用他们的对象之前就已经完成了。Class X{ int a;public: x();//构造函数};int main(){ X a;}这时就
2013-03-05 10:31:03
1037
原创 拷贝构造函数第十章 Thinking inc++
//没有调用他的构造函数而是调用的拷贝构造函数所以,在调用函数f()时,创建对象没有使object_count++,所以使后来的object_count的数量发生了变化#include #include using namespace std;class howmany{private: static int object_count;public: howmany() {
2013-03-04 14:29:29
718
转载 c++虚函数表
C++ 虚函数表解析 陈皓http://blog.youkuaiyun.com/haoel 前言 C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,R
2013-03-01 15:24:12
722
原创 自增自减运算符重载
#include using namespace std;class counter{public: counter(){v = 0;} counter & operator ++(); counter & operator ++(int); void print(){ cout<<v<<endl;}private: unsigned v;};counter & cou
2013-03-01 11:37:51
1033
原创 下标运算符重载【】
#include using namespace std;class charArray{public: charArray(int len) { length = len; buffer = new char[length]; } int getLength() { return length; } char & operator[](int i);
2013-03-01 10:56:38
4112
原创 complex 重载 算数运算符
#include using namespace std;class complex{public: friend void print(const complex &c); complex(); complex(double r,double i); ~complex(); complex operator+(const complex &c); complex opera
2013-03-01 10:12:56
832
转载 C++中delete和delete[]的区别
一直对C++中的delete和delete[]的区别不甚了解,今天遇到了,上网查了一下,得出了结论。做个备份,以免丢失。 C++告诉我们在回收用 new 分配的单个对象的内存空间的时候用 delete,回收用 new[] 分配的一组对象的内存空间的时候用 delete[]。关于 new[] 和 delete[],其中又分为两种情况:(1) 为基本数据类型分配和回收空间;(2) 为自定义
2013-02-28 15:16:51
500
转载 拷贝构造函数和赋值构造函数的区别
什么时候用拷贝构造函数,和赋值构造函数: (一)当用一个已初始化过了的自定义类类型对象去初始化另一个新构造的对象的时候,拷贝构造函数就会被自动调用。也就是说,当类的对象需要拷贝时,拷贝构造函数将会被调用。以下情况都会调用拷贝构造函数:一个对象以值传递的方式传入函数体 一个对象以值传递的方式从函数返回 一个对象需要通过另外一个对象进行初始化。 如果在类中没有显式地声明
2013-02-28 14:24:34
1131
原创 c++输入输出重载,赋值,加法运算符重载
在类里面声明了构造函数,但是没有写出它的实现,则在运行的时候会出现error LNK2001: unresolved external symbol "public: __thiscall MyClass::MyClass(void)" (??0MyClass@@QAE@XZ)这样的错误,所以要在外部去定义该构造函数或者是在内部定义如果要cout输出string类型,但是没
2013-02-28 11:36:48
7220
2
转载 C++拷贝构造函数详解
一. 什么是拷贝构造函数首先对于普通类型的对象来说,它们之间的复制是很简单的,例如:[c-sharp] view plaincopyint a = 100; int b = a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。下面看一个类对象拷贝的简单例子。
2013-02-27 10:55:18
544
转载 linux下串口编程入门
Linux下串口编程入门左锦 2003 年 7 月 简介: Linux操作系统从一开始就对串行口提供了很好的支持,本文就Linux下的串行口通讯编程进行简单的介绍。 串口简介 串行口是计算机一种常用的接口,具有连接线少,通讯简单,得到广泛的使用。常用的串口是RS-232-C接口(又称EIA RS-23
2013-02-22 14:50:45
546
原创 pos机linux下的对应程序
#include /*标准输入输出定义*/ #include #include /*标准函数库定义*/ #include /*Unix标准函数定义*/ #include /**/ #include /**/ #include /*文件控制定义*/ #include
2013-02-22 14:33:02
2472
原创 与pos机相连的windows端测试程序
串口发送的数据的格式 有格式的 长度(2)+数据+0x03+lrc#include #include #include HANDLE gComHandle;#define SI 0xf#define SO 0xe#define STX 0x02#define ETX 0x03void LogToFile(cha
2013-02-22 11:33:39
3270
原创 pos机上的串口配置
1.打开并初始化串口int openRs232(int uibuad){ struct Opn_Blk com_parm; int format; int iTermType; format = 0; closeRs232(); iTermType = MmiUtil_GetTerminalType(); if(iTermType == _VX6
2013-02-22 11:25:07
7221
转载 windows串口编程
在工业控制中,工控机(一般都基于Windows平台)经常需要与智能仪表通过串口进行通信。串口通信方便易行,应用广泛。一般情况下,工控机和各智能仪表通过RS485总线进行通信。RS485的通信方式是半双工的,只能由作为主节点的工控PC机依次轮询网络上的各智能控制单元子节点。每次通信都是由PC机通过串口向智能控制单元发布命令,智能控制单元在接收到正确的命令后作出应答。 在Win32下,可以使
2013-02-20 13:22:29
1344
转载 windows API 串口编程参考
(一)Windows API串口通信编程概述Windows环境下的串口编程与DOS环境下的串口编程有很大不同。Windows环境下的编程的最大特征之一就是设备无关性,它通过设备驱动程序将Windows应用程序同不同的外部设备隔离。Windows封装了Windows的通信机制,这种方式称为通信API,Windows程序可以利用Windows通信API进行编程,不用对硬件直接进行操作。这种体系被称
2013-02-20 13:15:09
7331
转载 list容器排序问题?
#include #include #include #include using namespace std;int main(){ int array[] = { 1,2,3,4,2,5,6,3,7,5,8,9}; list ilst(array,array + sizeof(array) / sizeof(int)); vector ivec; sort(ils
2013-02-04 11:28:49
1034
转载 c++错误集合
1. 错误:expected unqualified-id before ‘using’ 其实就是类声明后面没有加分号导致的。类声明的时候没有加分号,还可能导致一个错误错误:一个声明指定了多个类型解决办法:分别检查包含进来的文件,类声明,结构体声明后面有没有加分号。2. 重载运算符using std::ostream;3. C++容器迭代器即其引用#inclu
2013-01-22 15:11:48
1712
原创 c++ prime 10.3.9
include #include#include #include #include #include using namespace std;ifstream& open_file(ifstream&,const string&);int main(int argc, char **argv){ map trans_map; string key, val
2013-01-22 15:08:56
858
原创 非关联容器入门
Pair类型概述(转载)pair是一种模板类型,其中包含两个数据值,两个数据的类型可以不同,基本的定义如下: pair a;表示a中有两个类型,第一个元素是int型的,第二个元素是string类型的,如果创建pair的时候没有对其进行初始化,则调用默认构造函数对其初始化。 pair a("James", "Joy");也可以像上面一样在定义的时候直接对其初始化。
2013-01-22 11:28:37
615
转载 Ubuntu10
环境为Ubuntu10.10+libpcap-1.1.1.tar.gz1、Libpcap下载 Libpcap的官方网站是http://tcpdump.org/release,可以从该网站下载最新版本,当前系统使用的Libpcap安装文件是libpcap-1.1.1.tar.gz2、解压 tar zxvf libpcap-1.1.1.tar.gz3、配置 切换近lib
2013-01-21 12:58:43
478
原创 容器初级入门
1.编写一个循环将list容器的元素逆序输出#include #include using namespace std;int main(void){ int a[10] = {0,1,2,3,4,5,6,7,8,9}; list list1(a,a+10); list::iterator iter1 = list1.begin(), iter2 = li
2013-01-17 10:44:50
897
转载 ansi x9.9 MAC算法(转载)
MAC算法void xor(unsigned char *input1,unsigned char *input2,unsigned char *output,int len){ while (len) { *output++=*input1++^*input2++; len--; }}/**@brief: 根据输入数据计算M
2013-01-16 10:02:34
5456
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人