Linux下的飞鸽简要设计框架
以下是我从别的blog上转载的, 关于Linux下的飞鸽简要设计框架, 之所以说是Linux下的, 因为代码是Linux下的. 但是, 设计框架将遵循windows版飞鸽传书的协议和框架.数据包格式:
版本号:包编号:用户名:机器名:命令字:附加信息
如 1:2067943:liu :d14:32:hello
以上是一个发送消息的数据包格式,其中32是标示的发消息命令字。附加信息会随着命令字的不同而有所不同,例如,当对方发送了一条消息,你需要返回确认消息时,就需要在附加信息位置加上对方给你发消息时的包编号,只有包编号正确,对方才不会重发。
整个过程都要以以上数据包格式发送数据,因此,将数据包定义为一个结构体
typedef struct cmd
{
Unsigned int verision;
Unsigned int packetno;
Char sendName[];
Char machineName[];
Unsigned int fcommandNo; //命令字
Struct socketaddr_in peer; //这是套接字信息存储结构体
}CMD;
为了将实时的在线用户信息返回,就需要建立一个用户链表,
用户信息存储结构体如下:
Typedef struct info
{
Int no;
Char user[];
Char machine[];
Char IP[];
Struct info *next;
}INFO;
做完以上工作,接下来将进行总体的架构。因为,总体架构不合格,将会直接影响后面工作的进行。通过二次重写,使我深刻认识到,功能函数的重要性,在一个项目中,有时会对某一功能块进行多次调用,但你又不知道具体使那一块,这是跟着项目进度才可准确知道的。因而,为了方便,就要将一个功能封装成一个功能函数,这即有利于程序的可读性,又使得程序的架构变得容易些。
首先,我们需要知道本地的用户名等信息,这是用来填充CMD结构体中的用户名和机器名信息。这里有用到的两个函数实例
#include<pwd.h>
#include<sys/utsname.h>
Struct passwd *pwd;
Struct utsname sysName;
uname(&syaName);
pwd = getpwuid(getuid());
通过上面的操作,已经将用户名存入pwd-->pw_name;机器名存入sysName.nodename中。
在进行聊天或者文件传书时,我们需要用到服务器模式,其实udp 服务器模式
相关文档:
1. HCI层协议概述:
HCI提供一套统一的方法来访问Bluetooth底层。如图所示:
从图上可以看出,Host Controller Interface(HCI) 就是用来沟通Host和Module。Host通常就是PC, Module则是以各种物理连接形式(USB,serial,pc-card等)连接到PC上的bluetooth Dongle。
在Host这一端:application,SDP,L2cap等协议 ......
一:前言
最近在研究android的sensor driver,主要是E-compass,其中用到了Linux input子系统.在网上也看了很多这方面的资料,感觉还是这篇分析的比较细致透彻,因此转载一下以便自己学习,同时和大家分享!
(这篇博客主要是以键盘驱动为例的,不过讲解的是Linux Input Subsystem,可以仔细的研究一下!)
键盘驱动将检 ......
Linux下scp的用法
http://blog.csdn.net/Channels_net/archive/2009/09/02/4510286.aspx
scp就是secure copy,一个在linux下用来进行远程拷贝文件的命令。
有时我们需要获得远程服务器上的某个文件,该服务器既没有配置ftp服务器,也没有做共享,无法通过常规途径获得文件时,只需要通过简单的scp命令便可达到目的。
一 ......
从Linux 2.6起引入了一套新的驱动管理和注册机制:Platform_device和Platform_driver。
Linux中大部分的设备驱动,都可以使用这套机制, 设备用Platform_device表示,驱动用Platform_driver进行注册。
Linux platform driver机制和传统的device driver 机制(通过driver_register函数进行注册)相比,一个十 ......
摘自oldlinux:
上电执行的第一条代码是在内存里吗?
“访问的F000h : FFF0h是内存的地址还是存放bios的rom地址 ”
这个是由北桥内的一个寄存器设置的(具体的资料你可以去找一些芯片组的资料)。当北桥收到CPU外部的地址总线上的信号时,会根据这个寄存器内的值来决定是从内存里取内容还是把这个地 ......