摘要: 本文介绍Tcp的简单应用:简单的 回传(即客户端发送什么,服务器就转发给客户端什么)。主要包含以下几个函数原型:服务器端://服务器端主要函数原型:int socket(int domain, int type, int protocol);int bind( int sockfd , const ... 阅读全文
posted @ 2014-10-15 01:09 Stephen_Hsu 阅读(1521) 评论(0) 推荐(0) 编辑
摘要: 头文件:function模板库:用于替代C语言中的函数指针,它允许用户在目标的实现上有更大的弹性,即目标既可以是普通函数,也可以是函数对象和类的成员函数。注意:function模板类为C++11中的新标准,在编译时注意加上 -std=c++0x 的编译选项,适配器bind的实现:1.bind()函数... 阅读全文
posted @ 2014-10-10 23:54 Stephen_Hsu 阅读(927) 评论(0) 推荐(0) 编辑
摘要: 一、普通函数指针我们先来看一个最简单的函数:void fool(int a){ cout #include using namespace std;void fool(int a){ cout 方式调用(pf->*pFunc2)(123124);这里我们还注意到,上述类中含有一个sta... 阅读全文
posted @ 2014-10-10 20:50 Stephen_Hsu 阅读(2589) 评论(0) 推荐(0) 编辑
摘要: 这里我们给出一个使用RTTi的例子;考虑一个类层次,我们希望为它实现 operator==相等操作符:如果两个对象的给定数据成员集合的值相同,则它们就相等。每个派生类可以增加自己的成员,当然,测试相等的时候也要包含这些数据。对于类层次中有两个类型(一个基类,一个派生类),按照一般的方法,我们就需要实... 阅读全文
posted @ 2014-10-09 01:01 Stephen_Hsu 阅读(1888) 评论(0) 推荐(0) 编辑
摘要: 类型识别分为两种:一种以编译时类型识别,一种是运行时类型识别;编译时类型识别:static_cast;运行时类型识别(RTTI),C++通过下面连个操作符提供RTTi;1)dynamic_cast操作符,将基类类型的指针或者引用安全地转换为派生类型的指针或者引用;2)typeid操作符,返回指针或者... 阅读全文
posted @ 2014-10-09 00:32 Stephen_Hsu 阅读(382) 评论(0) 推荐(0) 编辑
摘要: 生产者,消费者问题是有关互斥锁(MutexLock)、条件变量(Condition)、线程(Thread)的经典案例;描述的问题可以叙述为 生产者往buffer中投放产品,而消费者则从buffer中消费产品。生产着消费者问题的难点在于:为了缓冲区数据的安全性,一次只允许一个线程进入缓冲区投放或者消费... 阅读全文
posted @ 2014-10-08 01:40 Stephen_Hsu 阅读(539) 评论(0) 推荐(0) 编辑
摘要: 在实现线程的过程中,我们经常会写类似于这样的代码:{ mutex_.lock(); //XXX if(...) 语句; //XXX mutex_.unlock();}虽然这段代码是正常的加锁解锁,但是有时候我们难免会出现一些低级错误,例如把 忘了写... 阅读全文
posted @ 2014-10-08 00:57 Stephen_Hsu 阅读(472) 评论(0) 推荐(0) 编辑
摘要: 本篇我们将讨论线程Thread的封装;一、线程类(Thread):注意:1、线程在默认情况下 是 joinable(可结合状态),需要手工调用 join函数(将其回收),也可以将其设置为detachable(分离状态),线程运行完毕后自动消亡;2、Thread类采用static函数作为 pthrea... 阅读全文
posted @ 2014-10-06 21:02 Stephen_Hsu 阅读(1488) 评论(0) 推荐(0) 编辑
摘要: 本博文讨论Linux中的条件变量Condition的封装;条件变量Condition 主要描述的是 线程间 的同步,即协作关系。Linux中的条件变量通常涉及以下几个函数:int pthread_cond_init(pthread_cond_t *cond, pthread_condattr_t *... 阅读全文
posted @ 2014-10-06 20:58 Stephen_Hsu 阅读(1128) 评论(0) 推荐(0) 编辑
摘要: 本文对pthread_mutex_t 进行简易的封装;互斥锁主要用于互斥,描述的是一种竞争关系,主要是一个 一种资源或者代码, 在一段时间内 至多能被一个程序访问。而条件变量主要用于线程间同步, 描述的是一种协作关系。Linux中互斥锁的应用比较简单,通用的有以下几个函数:1 int pthread... 阅读全文
posted @ 2014-10-06 20:31 Stephen_Hsu 阅读(2711) 评论(1) 推荐(0) 编辑