Linux下的主动对象类的实现
#pragma once
#include <pthread.h>
class ThreadWrapper
{
public:
virtual ~ThreadWrapper();
static void EnterFunc(void *p);
int Open();
int Close();
bool TestCancel();
void Wait();
virtual void Svc();
protected:
ThreadWrapper();
private:
bool m_stillOpen;
int m_threadNum;
pthread_t m_handle;
};
*************************************************
#include "ThreadWrapper.h"
ThreadWrapper::ThreadWrapper()
: m_stillOpen(false)
{}
ThreadWrapper::~ThreadWrapper()
{
if(m_stillOpen)
{
Close();
Wait();
}
}
/*
Functional: The enter function of the thread.
*/
void ThreadWrapper::EnterFunc (void *p)
{
ThreadWrapper* bp = static_cast <ThreadWrapper*> (p);
bp->Svc();
}
/*
Functional: Create the thread.
*/
int ThreadWrapper::Open ()
{
m_threadNum = threadNum;
int ret = pthread_create(&m_handle, NULL, EnterFunc, this);
if (ret != 0)
{
return -1;
}
m_stillOpen = true;
return 0;
}
int ThreadWrapper::Close()
{
pthread_cancel(m_handle);
m_stillOpen = false;
return 1;
}
void ThreadWrapper::TestCancel()
{
pthread_testcancel();
}
void ThreadWrapper::Wait()
{
pthread_join(m_handle, NULL);
m_stillOpen = false;
}
void ThreadWrapper::Svc()
{}
此主动对象的用法如下:
1:先定义主动对象类,派生自ThreadWrapper即可,然后实现Svc()虚方法
cla
相关文档:
1. HCI层协议概述:
HCI提供一套统一的方法来访问Bluetooth底层。如图所示:
从图上可以看出,Host Controller Interface(HCI) 就是用来沟通Host和Module。Host通常就是PC, Module则是以各种物理连接形式(USB,serial,pc-card等)连接到PC上的bluetooth Dongle。
在Host这一端:application,SDP,L2cap等协议 ......
测试系统在Linux上的性能发现丢包率极为严重,发210000条数据,丢包达110000之巨,丢包率超过50%。同等情形下Windows上测试,仅丢几条数据。形势严峻,必须解决。考虑可能是因为协议栈Buffer太低所致,于是先看看默认情况:
sysctl -a |grep net.core
发现
net.core.rmem_max = 131071
net.core.rmem_default = 11264 ......
前言
linux有自己一套完整的启动体系,抓住了linux启动的脉络,linux的启动过程将不再神秘。
阅读之前建议先看一下附图。
本文中假设inittab中设置的init tree为:
/etc/rc.d/rc0.d
/etc/rc.d/rc1.d
/etc/rc.d/rc2.d
/etc/rc.d/rc3.d
/etc/rc.d/rc4.d
/etc/ ......
今天,我想在Linux下配置一台DHCP服务器,感觉上比较直观,难度稍微有点大(相对于在windows及路由器下)。
DHCP(Dynamic Host Configure Protocol,动态主机配置文件),是一个简化手动分配及管理IP地址的烦恼。DHCP是基于C/S模式的。
默认,在RHEL上没有安装服务器组件。查看是否安装的命令
[root@localhost ~]# rpm - ......
使用的脚步有四个:【backup_unasyn.sh //备份所以执行的脚步
host_ip.sh &n ......