首页 › 分类存档 › UC

如何判断大端小端

端模式(Endian)的这个词出自Jonathan Swift书写的《格列佛游记》。这本书根据将鸡蛋敲开的方法不同将所有的人分为两类,从圆头开始将鸡蛋敲开的人被归为Big Endian,从尖头开始将鸡蛋敲开的人被归为Littile Endian。小人国的内战就源于吃鸡蛋时是究竟从大头(Big-Endian)敲开还是从小头(Little-Endian)敲开。在计算机业Big Endian和Little Endian也几乎引起一场战争。在计算机业界,Endian表示数据在存储器中的存放顺序。下文举例说明在计算机中大小端模式的区别。
继续阅读 »

MINGW下动态库编译及使用

环境为MINGW

继续阅读 »

windows下QT前台和linux下后台程序通过socket通信

通常情况下,linux下的后台程序不需要GUI进行展示,而前台程序往往有个界面,方便和用户的交互。本文所演示的例子,是QT 程序和后台linux进程(C语言)交互,通过socket传输的内容是结构体。因为QT本身是跨平台的框架,因此以后前端程序移植到其它平台依然能很好的运行。
继续阅读 »

QT前台与后台程序通过socket通信

通常情况下在linux上写程序不需要GUI进行展示,但有时做测试还是有个前台界面更加方便,省去了很多繁琐的输入过程,同时也更易于观察输出内容。因此这两天开始回顾了一下QT的东西。做为基础的功能,首先做了个QT和后台进程(c语言实现)交互的模块,在此基础上今后再针对具体需求做些修改便可完成前后台之间的配合。因为QT本身是跨平台的框架,因此以后前端程序移植到其他平台依然能很好的运行。

QT前台:  window下客户端, 通过执行ip和端口发送字符串并等待接收。使用QT提供的对socket封装过
的类QTcpSocket和相关函数

后台进程: 虚拟机linux上c语言实现,通过系统的socket函数接收字符串,并将字符串中的小写字符转换为大
写,并返回给客户端。
继续阅读 »

基于socket简单通信协议实现(c/c++)

1 场景
当用socket进行进程通信,传输数据的时候,会出现以下一些情况:

(1)完整的一条消息被系统拆分成几条发送,例如要发送一条消息:Hello World ,却被系统分成两条消息发送,分别为:Hello 和 World。

(2)几条独立的消息被系统合成一条消息发送,例如要发送两条消息分别为:a memory from my past和it’s been a year,却被系统和成一条消息发送:a memory from my pastit’s been a year。

这个时候,需要为socket通信设计一种通信协议,以保证数据的准确性。
继续阅读 »

linux C++ 面向对象线程类封装

1.封装遇到的问题

将pthread线程封装为抽象类,这样用户在使用线程时,只需要继承一下这个抽象类,并实现相应的接口就可以了。这样做的好处是用户可以将注意力集中在线程所要执行的逻辑上,而不需要关注创建线程、销毁线程等细节问题上。
继续阅读 »

服务器开发之 Daemon 和 Keepalive

由于业务开发需要,需要对数据库代理进行研究,在研究 MySQL Proxy 实现原理的过程中,对一些功能点进行了分析总结。本文主要讲解下 MySQL Proxy的 daemon 和 keepalive 功能实现原理。
继续阅读 »

模板类与类模板、函数模板与模板函数等的区别

在C++中有好几个这样的术语,但是我们很多时候用的并不正确,几乎是互相替换混淆使用。下面我想彻底辨清几个术语,这样就可以避免很多概念上的混淆和使用上的错误。
这几个词是:
函数指针——指针函数
数组指针——指针数组
类模板——模板类
函数模板——模板函数
最终在使用中,我们就可以让它们实至名归,名正言顺。
继续阅读 »

模板类的友元重载

模板类的友元重载方法
继续阅读 »

socket的CS连接流程

闲言少叙,直接提出两张图,一目了然。图是从网上找的:)

第一幅:STREAM方式(TCP)连接流程
image007
继续阅读 »