易截截图软件、单文件、免安装、纯绿色、仅160KB

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 服务器模式


相关文档:

实战Linux Bluetooth编程(六) L2CAP编程实例

例一:发送Signaling Packet:
Signaling Command是2个Bluetooth实体之间的L2CAP层命令传输。所以得Signaling Command使用CID 0x0001.
多个Command可以在一个C-frame(control frame)中发送。
 如果要直接发送Signaling Command.需要建立SOCK_RAW类型的L2CAP连接Socket。这样才有机会自己填充Command Code,Identi ......

实战Linux Bluetooth编程 (七) SDP协议

Service Discovery Protocol(SDP)提供一种能力,让应用程序有方法发现哪种服务可用以及这种服务的特性。
服务发现协议(SDP或Bluetooth SDP)在蓝牙协议栈中对蓝牙环境中的应用程序有特殊的含意,发现哪个服务是可用的和确定这些可用服务的特征。SDP定义了bluetooth client发现可用bluetooth server服务和它们的特征的方法。 ......

Linux下scp的用法

Linux下scp的用法
http://blog.csdn.net/Channels_net/archive/2009/09/02/4510286.aspx
scp就是secure copy,一个在linux下用来进行远程拷贝文件的命令。
有时我们需要获得远程服务器上的某个文件,该服务器既没有配置ftp服务器,也没有做共享,无法通过常规途径获得文件时,只需要通过简单的scp命令便可达到目的。
一 ......

Linux virtual server【LVS】

1. Two methods to construct the cluster of servers
(1). DNS based load balancing cluster
DNS load balancing is probably the simplest method to build network
service cluster. It uses Domain Name System to distribute requests to
different servers through resolving the domain name to different IP
......

Linux中等待队列机制分析

 Linux中等待队列机制分析
 
什么是等待队列?
       在软件开发中任务经常由于某种条件没有得到满足而不得不进入睡眠状态,然后等待条件得到满足的时候再继续运行,进入运行状态。这种需求需要等待队列机制的支持。Linux中提供了等待队列的机制,该机制在内核中应用很广泛。 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号