任务一 申请即时通信帐号 教学设计

2024-04-23

任务一 申请即时通信帐号 教学设计(通用6篇)

篇1:任务一 申请即时通信帐号 教学设计

任务一 申请即时通信帐号 教学设计

1教学目标

1、了解即时通信的特点;

2、认识常用的即时通信工具软件;

3、学会申请QQ号码的方法;

4、学会添加好友和发送信息。2学情分析

五年级同学已经了解了信息的概念,在生活中天天接触很多信息传递方式,现在我们要把这些生活的东西用规范的信息术加以使用,大多数孩子比较容易理解。3重点难点

1、教学重点:申请账号,添加好友和发送信息。

2、教学难点:认识即时通信。4教学过程

活动1【导入】新课导入

我有一个很好很好的朋友因为工作的关系,调到桂林去了,我很想很想跟她联系,了解她在那边过得怎么样,用什么方法跟她联系比较好呢? 活动2【导入】

一、通信 双向即时

QQ:文字、图片、语音、视频等多种形式信息搞笑传递 活动3【活动】任务一:申请QQ号 布置任务: ①还没有QQ号的同学任选一种方法申请一个QQ号;②已经有QQ号的同学也可以任选一种方法申请一个新的QQ号;③已经有QQ号又不想重新申请新号码的同学可以当一回小老师,帮助在申请中有困难的同学完成QQ号的申请;④填写班级QQ通讯录(演示填写方法)注:申请时间为一首歌的时间(5分钟左右)活动4【活动】过渡

成功申请了一个新的QQ号码,是不是就可以和朋友交流信息(聊天)了呢?那还要做什么 活动5【活动】任务二:添加好友

查找——输入账号——单击查找——确定 ①任选一种方法添加好友。

②给已添加的每个好友分别发送一句问候的话语。(5分钟左右)活动6【活动】拓展

使用QQ时应注意的一些事项

同学们聊得很开心,可惜愉快的时间总是比较短暂,我有一个小小的请求,不过这个请求可能会涉及到你们的隐私,所以你们也可以不答应:哪位同学愿意展示一下你们刚才的聊天记录呢? 活动7【讲授】结束语

我们网上交流要慎重,在用QQ和朋友聊天的时候就应该有意识地保护好自己的隐私,增强自我保护意识,不随意地把自己的家庭住址、电话号码、特别是银行账号和密码之类的告诉别人,以免身心受到伤害。还有在与QQ好友聊天的时候应该使用文明用语,不要辱骂或欺诈他人,做一个文明上网的小公民。

除了我们比较熟悉的QQ这个即时通信工具软件,在因特网上常用的即时通信工具还有很多,如微软的MSN Messenger,雅虎的Yahoo Messenger等等。因为时间的关系,我们可以课后再通过因特网查找相关信息,还可以通过QQ讨论你更喜欢使用哪一种即时通信工具软件。

篇2:企业即时通信软件的设计与实现

时下很多企业通过QQ、MSN、Yahoo!Messenger等即时通信软件来实现文字、音频和视频等信息的实时传输,实现企业内部员工之间以及企业和客户之间的即时交流[1]。但是存在这样的问题:员工和客户可能习惯使用不同的即时通软件,由于这些即时通软件之间不能互联互通,所以员工和客户只能拥有多个不同即时通软件帐号,这样不方便员工的使用和企业的统一管理;另一个方面,如果企业对于即时通信有个性化需求,这些软件也显得无能为力。为了解决这些问题,Jabber软件基金会提出的XMPP协议标准,通过其支持的XML语言良好的扩展性和灵活性实现不同通信软件的互相通信。XMPP的扩展协议Jingle支持P2P,利用Google发布了Jingle协议的开源库libjingle,用户可以开发自己的即时通软件客户端,实现不同即时通软件的互通。

提出了一种企业即时通软件平台方案,企业不另外自建服务器而是使用公用服务器,通过自建客户端实现基本即时通信,并在客户端加入企业的个性化应用模块,实现企业内部以及企业和客户之间的即时通信。具体地说,就是使用libjingle开发企业的客户端软件,实现基本的文字、音频等功能,并在客户端加入企业产品的远程认证和远程故障诊断功能模块,方便企业和客户的交流。

2 libjingle即时消息系统

2.1 会话模型[2]

libjingle开源库建立于开源协议XMPP和Jingle之上,并在此基础上扩展。利用XML数据流进行客户端-服务器端以及服务器端-服务器端的通信,libjingle定义了3个顶级XML元素:

(1)元素:包含两个用户间互相发送消息的全部内容。

(2)元素:提供关于一个用户的可用性信息和在线状态信息。比如用户是否在线或者在线状态等。

(3)元素:用于在两个用户间构建一个基本的会话;并且允许用户间来回传送XML格式的请求和响应,比如说用户基本信息资料等。

在路由处理上,libjingle的采用国际上常用的逻辑寻址机制,其格式为:节点@域/资源。

libjingle采用Jingle的XEP-0166、XEP-0167、XEP-0176以及XEP-177标准分别实现协商和管理所有带外传输的会话、音频会话、ICE(Interactive Connectivity Establishment)传输方法建立和管理数据连接会话以及纯UDP传输会话的功能,实现两个客户端的P2P通信。

2.2 通信系统结构和工作原理

libjingle采用了XMPP信令在带内信道传输,用户数据在带外信道上P2P传输的机制[2、4],如图1所示。XMPP信令通过Jingle Server的处理转发给用户,实现用户状态和聊天信息在带内信道的传输。对于用户数据,根据其传输信道有无防火墙或者NAT设备,有3种不同数据传输路径[3]:

(1)在有防火墙或者NAT设备的情况下,通信双方的直接连接(Direct Connection)通信,即客户端-客户端模式。

(2)在有防火墙或者NAT设备的情况下,中继服务器(Relay Server)转发连接通信,即客户端-服务器-客户端模式。

(3)在通信双方没有防火墙或者NAT的情况下,通信双方直接通信,即客户端-客户端模式。

Jingle Serve可以使用talk.gmail.com服务器,用户注册一个gmail.com的JID(Jabber Identify),就可以通过客户端登录talk.gmail.com服务器,实现gmail.com客户之间以及gmail.com客户和遵循XMPP的客户之间的即时通信;如果用户开发自己的Jingle Server,JID可以自己定义。libjingle开发的客户端加入用户的个性化结构模块只有在本客户端之间才有效,但这不影响其与其他类型的XMPP客户端之间的基本即时通信。

3 libjingle企业即时通客户端设计与实现

3.1 客户端模型

libjingle企业即时通客户端与本地Jingle服务器和对方客户端交互,使用5个组件完成信息和数据的处理、传输以及界面显示,如图2所示。

libjingle企业即时通客户端基本即时通信服务包括文件共享、语音聊天、即时文本聊天以及用户状态4个模块,本设计客户端增加远程认证和远程故障诊断2个模块实现企业和产品用户之间的个性化交互,如图3所示。

针对用户和企业对远程认证和远程故障诊断功能需求不同,客户端分为用户客户端和企业客户端,体现在设计上主要差异就是在企业客户端增加一个用户和产品信息的数据库连接和数据解析接口。

3.2 远程认证与远程故障诊断

本软件的远程认证是指公司硬件产品客户通过本软件平台实现硬件产品的远程即时认证并解锁,实现产品真伪的远程即时认定;远程故障诊断是指通过本软件实现硬件产品远程故障诊断并尽可能自动发送命令消除故障,实现产品故障的远程即时处理。

用户要远程认证或者远程故障诊断产品过程如下:登录用户客户端,插入硬件产品或者输入产品信息,远程认证或者远程故障诊断模块自动生成一个询问文件,该文件通过文件共享模块处理并自动发送到企业客户端,企业客户端收到该文件后,通过远程认证或者远程故障诊断模块解析处理并与企业用户和产品信息数据库交互,把分析的结果生成一个报告文件,然后通过文件共享模块处理并自动发送到用户客户端,整个交互过程完成,如图4所示。

3.3 客户端基本即时通信

3.3.1 基本即时通信模块

基本即时通信的即时文本聊天模块分为3个部分;(1)用户应用接口单元;(2)XMPP报文传输单元;(3)逻辑会话和会话管理单元。

基本即时通信的客户端文件共享模块和语音聊天模块分别分为4个部分,如图5所示。(1)用户应用接口单元;(2)XMPP报文传输单元,此单元是XMPP信令在应用程序和网络之间传输的接口;(3)会话逻辑和会话管理单元,控制每一个会话类型具体的逻辑请求;(4)点到点传输单元,主要作用是实现本地客户端与远程客户端的文件互传和语音互通。

3.3.2 远程认证模块和远程故障诊断模块

远程认证与远程故障诊断在两个客户端之间完成数据的交互,不通过Jingle服务器,通过P2P带内信道完成传输,如图5所示。

在用户客户端,远程认证与远程故障诊断模块分为5个部分:(1)用户应用接口单元;(2)XMPP报文传输单元;(3)会话逻辑和会话管理单元;(4)点到点传输单元;(5)远程认证单元或者远程故障诊断单元。

在企业客户端,远程认证与远程故障诊断模块分为6个部分:(1)用户应用接口单元;(2)XMPP报文传输单元;(3)会话逻辑和会话管理单元;(4)点到点传输单元;(5)远程认证或者远程故障诊断单元,(6)数据库接口和数据解析单元。

3.3.3 实际应用

设计的即时通软件平台能够即时认证用户购买的硬件设备是否为原企业产品;如果本硬件设备有故障,可以把设备插入本地接口,通过本地即时通平台把故障信息即时发给公司客户端,由公司客户端后台和技术人员诊断,然后把诊断结果发给用户客户端,并直接远程向用户硬件设备写命令来排除故障。通过2个多月的试运行,本软件平台能够满足企业对客户硬件设备的远程认证和远程故障诊断,并能实现基本的文本、文件和语音通信。

4 结语

对基于libjingle的开源库开发一款企业硬件产品远程认证和远程故障诊断即时通软件平台进行了分析介绍,本平台的优点在于不需要建立企业即时通平台服务器就能实现企业和客户已经企业内部的即时通信,为了使本平台能更安全,在本平台的后续升级版本中,将在产品远程认证和远程故障诊断模块加入加密单元。

参考文献

[1]潘振香,等.Jabber协议在即时通信系统中的应用[J].网络安全技术与应用,2007,(10):79-81.

[2]Google.libjingle[E B/OL].(2008-01-10)[2008-10-20].http://code.google.com/apis/talk/libj ingle/.

[3]xmpp.org.XMPP Extensions[E B/OL].(2008-02-01)[2008-10-20].http://xmpp.org/extensions/.

篇3:任务一 申请即时通信帐号 教学设计

【关键词】即时通信;物流管理途径;第三方物流;竞争优势;RFID

一、引言

我国通信技术发展迅速,其方便快捷的特点,逐渐被引入到物流管理系统之中。在我国现阶段,如何更好将即时通信的优势发挥到物流管理系统中,推动物流管理系统的改革和发展是我国当前物流管理人员应该深入研究的问题。

二、物流管理中对即时通信技术的引入和应用

(一)车辆定位中即时通信的应用

当前,在物流管理系统中,通过引入GPS在货车位置的定位中将信息传输到控制中心,十分快速便捷,货车的具体位置可以通过对图形进行分析得出。在物流管理过程中,通过即时通信技术,将物流管理的控制范围扩大到全国范围内,无需特别建设自己的通讯网络,这就使得物流管理的成本大大降低,大范围的系统管理得到实现。在物流管理中,当控制中心需要对某一辆车进行调度时,控制中心可以利用短信的方式通过网络即时对车辆发出指令调整车辆运输状态,司机可以根据收到的语音和短信来对运输线路进行调整。即使遇到特别的情况,也可以使用无线网络进行即时通信与控制中心进行沟通,然后视具体情况下达作业指令。

(二)在货物保险中应用即时通信技术

RFID (无线射频技术)可应用在电子锁上,如果货物被锁,那么计算机就能够将物品的性质、路线、收货人等信息进行收录并输入电子锁,在对货物进行检查的时候,只需要自动扫描电子锁,通过短信将信息传入到控制中心,进行核实即可。如果电子锁被打开,也会有短信通知,最大化保证货物运送中的安全。

(三)在货物配送过程中应用即时通信技术

在货物送达销售商手里后,进行相关的注册,然后短信通知中心,货物收讫之后,进行电子签收和记录。

(四)订货中即时通信技术的应用

在零售用户中,通过注册的手机号码就能够向厂家进行订货,可以即时传送订货的信息,销售公司通过短信回复,可以即时的了解到零售商的退订货情况,沟通有效方便。

(五)在仓储管理中应用即时通信技术

即时通信技术能够与条码进行结合,在仓储的过程中,管理人员可以使用手持终端接收业务中心的信息和指令,然后通过扫描条码完成盘点和备货。通过通信技术的使用减少了中间环节的偏差,提高了管理效率。

三、在物流管理中推进即时通信技术发展的有效途径

(一)提高现代物流管理思想的快速发展

在当今市场经济调节的激烈竞争中,物流效率是确保企业高效运转的有效手段,独特的物流管理是企业强有力的竞争力,像企业账本的实体资产一样是核心竞争力的重要组成部门。当前国际大企业都具有高效的物流管理系统来领先其他对手,通过成本领先、效应迅速的竞争优势,在后勤保障上为企业赢得竞争优势。引入即时通信的物流管理模式,具有同一指挥、多操作节点、业务垂直管理等创新管理模式,通过这些领先的技术和创新可以扩大企业影响力,所以我国物流管理企业要想在市场竞争中站稳脚跟,就必须引入并扩大即时通信技术的应用,形成经营优势。

(二)要探究适合我国国情的物流管理方式

(1)要灵活掌握物流运作管理方式

供应商管理用户库存(VMI模式)、第三方物流管理等一系列创新的物流管理模式逐渐兴起,我国的物流管理行业也逐渐重视这些新模式的作用。工程中物资的管理具有自身特点,给予工程建设自身极强的计划性,工程物资对物流的需要可以归入工程建设的规划之中,通过推动式的物流管理模式来对工程物资进行总体管理。在项目确立后可以根据采购计划的数量和品类进行采购。相对于工程物资,对业务用品物资而言,因为市场活动中各种变化很多,单独通过推动式管理是不能达到营销活动高效的物流管理效果的,因此应该使用推拉结合的方式来加强管理。在营销计划开始之前,企业要根据总体营销的方案对需要物资的数量进行预计,做出相应的物流计划,在项目实施过程中,公司也应该充分考虑实际需求来满足业务用品的物流需求。

(2)建设高质量物流管理系统

在现代企业的竞争和日常管理中,信息成为竞争的重要砝码,即时信息更是至关重要。而对于物流系统管理中,,物资的出库、入库、运输调度等各种信息也要第一时间到达使用者的手中。高效的物流系统必须有高质量的管理信息系统来支撑。在我国的即时通信企业中,具有的共同特点是营业销售点和工程建设基站数量众多,分布也十分广泛,管理中跨级管理。这些问题造成物流管理中的困难,要精确的掌握各种物资十分困难,而将这些管理应用管道工程和销售的终端更是难上加难,要解决这些問题就必须通过信息化手段的使用确保信息流的快速和准确,减少多余信息的附加,提高传送效率,推动企业生产和运作。

(3)引入第三方物流促进企业物流管理的发展

第三方物流(Third-Party Logistics,简称3PL,也简称TPL)是企业在专注自己主要业务的同时,将企业的物流管理活动以合同的形式委托给专业的物流服务公司,通过信息系统来与物流公司进行有效沟通,对物资运送过程中的各个环节进行跟踪的方式。正是这种方式的不断增加,第三方物流从常规的存储、运输等单项服务逐渐增加了增值的服务。通过引入即时通信,专业的物流公司具备了很多的优势:引入即时通信技术大大节省了运输费用,减少了投入资金,是企业在管理和配送方面更具专业和成本优势。除此之外,库存还最大程度的减少,通过物流的有效计划管理和有效的运输,库存迅速减少,而“客户导向型”的第三方物流公司从整体上帮助企业全面提高运作效率。

四、结束语

伴随着即时通信在物流管理业中的推广,第三方物流是发展的大体趋势,即时通信也成为企业成败的关键因素。通过即时通信的引入极大的推动了物流管理水品,可以大大提高产品制造的有效性,增强企业的核心竞争力,改善物流企业与客户之间的沟通渠道,提高物流企业的竞争优势。促进企业物流对发展的支撑不断增加,为企业增加了利润空间。

参考文献:

[1] 邓胜. IV与IM大对决山雨欲来[J]. IT时代周刊. 2004(24)

[2] 陈杰. 统一通信:融合是关键[J]. 软件世界. 2007(21)

[3] 苏艳,许南山. 基于J2EE技术的物流管理系统的设计与实现[J]. 商场现代化. 2008(02)

[4] 李凌杰. 企业内部即时通信软件作用之探析[J]. 企业科技与发展. 2011(08)

[5] 成鑫. Virtual Earth在物流系统中的应用[J]. 中国西部科技. 2009(02)

篇4:任务一 申请即时通信帐号 教学设计

随着移动通信技术的快速发展,人们对移动终端的功能需求也日益增高。即时通信软件作为网络用户通信交流不可或缺的工具,从单纯的网络聊天工具逐渐变成工作生活的信息交流平台,即时通信的用户规模也呈现出快速增长的趋势[1]。本文采用Socket网络编程设计,在Android平台下实现了基于TCP/IP协议的网络通信系统。本系统的设计方案为后期相关通信系统设计提供了部分技术参考,并具有一定的应用价值[2]。

1 Android平台

Android是一个由Linux+Java构成的开源的移动设备软件平台,它是基于Linux内核的系统,具有良好的可移植性[3,4]。Android平台的框架结构从上至下包含了五个部分:应用程序(Applications)、应用框架(Application Framework)、开发库(Libraries)、运行时环境(Android Runtime)以及Linux内核(Linux Kernel),可方便地为应用程序提供系统调用,为应用程序的开发提供了便利。

2 系统设计

Android系统中的网络通信可以通过四种方法实现:

(1)可以调用JDK中的相关网络通信的API函数[5实现。

(2)基于ServerSocket和Socket方法创建TCP/IP协议的网络通信。

(3)通过DatagramSocket和MulticastSocket创建UDP协议的网络通信。

(4)通过JDK中提供的URL等网络通信API来实现,这种方法采用在Android系统内置HTTPClient,发送HTTP请求,获取HTTP响应的方式使得通信得以实现。

本文采用上述第(2)种方法实现网络通信。

2.1 用ServerSocket创建TCPClient

在系统中,服务器端通过ServerSocket类监听是否有客户端发出Socket连接请求,若没有,则一直处于等待状态;若有,则进行后续相应操作。ServerSocket类通过Socket accept()函数实现监听网络中客户端的连接请求[6]。

Socket accept()函数,如果监听到有客户端发出的Socket连接请求,则连接;若没有监听到,则进入等待状态。

ServerSocket类通过以下几个构造器来创建ServerSocket对象:

(1)ServerSocket(int port)函数,通过指定的某一个端口port号创建一个ServerSocket。端口号的有效数字在0~65 535之间。

(2)ServerSocket(int port,int backlog)函数,在参数中增加backlog,可以用来改变队列长度。

(3)ServerSocket(int port,int backlog,InetAddresslocalAddr)函数,在参数中增加InetAddress和localAddr,用于在机器存在多个IP地址的情况下,将其绑定到指定的IP地址。

当系统中Socket通信结束后,可以用ServerSocket中的close()函数关闭该终端的Socket通信。

在某一时刻,服务器可能不仅会监听到一个客户端的连接请求,当有多个客户端的连接请求时,服务器应该能处理所有客户端的连续请求。本文中服务器端的实验程序运行在PC上,服务器与客户机端的Socket通信如图1所示。

当使用Socket进行通信时,客户端程序可以通过以下两个Socket的构造器连接到指定服务器端。

(1)Socket(InetAddress/String remoteAddress,intport):用于创建一个连接到指定远程主机、远程端口的Socket,该函数中使用本地主机默认IP地址进行连接。

(2)Socket(InetAddress/String remoteAddress,intport,InetAddress localAddr,int localPort):用于创建一个连接到指定远程主机和远程端口的Socket,该函数中指定了本地IP地址和使用的端口号。

以上两个构造器中指定的远程主机,可以使用InetAddress表示,也可通过用String对象表示。在程序中,一般使用String对象表示远程IP地址。同时,比较上述两种方法,在本地主机只有一个IP地址的情况下,第一个方法由于使用默认的IP地址,无需指定,因此更为简单。如以下代码所示:

当客户端程序运行上面的代码时,客户端程序将连接到指定服务器端,服务器端的ServerSocket类中的accept方法将开始向下执行,这样在服务器端和客户端就产生了用于互相连接的Socket通信。

客户端与服务器端建立了Socket之后,就可以相互进行通信。当需要获取输入流和输出流时,Socket可以通过以下两种方法来实现。

(1)InputStream getInputStream():函数将返回该Socket对象对应的输入流,程序可以通过该输入流取出需要的数据。

(2)OutputStream getOutputStream():函数将返回该Socket对象对应的输出流,程序可以通过该输出流输出数据。

2.2 加载工程文件

打开Android集成开发环环境并加载工程文件:选择任务栏的“file-->import”导入项目文件,从常规(General)文件的选项中选择已经存在的项目到工作区(Existing Projects into Workspace),如图2所示。

接着,选择“Select root directory”选项,通过浏览文件夹功能选择服务器或者客户端程序目录,这里选择“EX02_08/tcp/JavaServer”,同时勾选“Copy project int workspace”复制到工作区,按下“确定”按钮,再选择“Finish”按钮即可。

加载完工程后,在Workspace里找到JavaServer工程,右击工程名,选择Run As->Java Application,运行JavaServer程序。如图3所示。

2.3 配置应用程序

右键项目-->>RRuun as->Run Configuration进入如图所示界面。在该界面中,点击BBrroowwssee按钮,选择要运行的项目。然后选择TTaarrggeett切换到后续界面,选择运行的AAVVDD,将AAVVDD前面的方框设置为选择状态。点击RRuunn。

3 系统测试

本文在模拟器中对程序进行测试,操作如下:右键项目名称->run as->Android Application,这样即可启动运行该Android程序,如图5所示。

在发送框中输入“5554”,如图6所示。

输入完后,点击发送按钮,这时下面的TextView文本框中将显示从服务器发送过来的数据。如图7所示。

测试结果表明,该系统运行正常,可以实现在Android平台上的即时通信功能。

参考文献

[1]张辉,曹丽娜.现代通信原理与技术[M].西安:西安电子科技大学出版社,2005.

[2]何忠龙,陈萱华,曹迎槐.多媒体通信技术[M].北京:北京希望电子出版社,2006.

[3]王晓军,毛京丽.计算机通信网[M].北京:北京邮电出版社,2007.

[4]肖杰,谭庆平.基于J2EE的Web构件平台的设计[J].长沙大学学报,2005,19(3):43-47.

[5]田小波,陈蜀宇.MVC设计模式在J2EE架构下的研究与应用[J].西华大学学报,2007(2):33-35.

篇5:任务一 申请即时通信帐号 教学设计

随着科学技术的不断进步, 计算机网络越来越普及, 即时通信技术得到不断更新和发展, 给人们的生产生活带来了很大便利。但同时即时通信技术也存在一些安全问题, 给企业有效控制员工行为增加了一定难度, 这样就可能出现企业的机密泄露到外界或重要资料被窃取等情况, 给企业带来不同程度的损失。因此, 有必要针对企业对即时通信安全的需求设计一个有效的监控系统, 即协议分析企业所使用的MSN Messenger, 并在此基础上建立一个MSNAnalyzer监控分析系统。利用该系统实时监控企业内部网络, 保护企业信息安全。

1 即时通信协议的工作原理

MSNP Messenger主要是指列席式即时通信系统。即时通信协议主要建立在TCP/IP系统上, 除了文件传输和语音聊天是直接点对点通信外, 其他都需要通过服务器中转。在MSNP协议中共有3种服务器, 即派遣服务器、通知服务器和交换服务器, 这3种服务器在系统中各有各的功能和作用。

在快速发展且竞争激烈的环境, 为了监控有害文本, 需要对即时通信文本的数据和信息进行深度分析。即时通信分析环境的硬件部分主要包括客户机、集线器网关等;软件部分包括网络分析软件、即时通信软件等。通过分析数据并采用一定的格式将其保存在文件中, 然后从文件中读取数据帧并将数据帧交给协议分析处理模块, 最后保存在磁盘中。经过分析, 得出系统总体实现模型和模块划分如图1所示, 各模块的具体功能如表1所示。

2 数据采集与存储

该系统中, 对数据的采集使用的是基于网络嗅探技术的方法, 使用的开发工具为WinPcap4.0.1, 这样能够有效捕获数据包, 并对其进行过滤, 从而得到与系统相关的数据, 有利于提高系统的工作效率。基于此, 要对采集到的数据进行及时存储, 并保证数据包的安全, 就必须考虑内存缓冲技术、磁盘I/O能力、CPU处理能力、网络接口能力等多种因素的影响, 采用有效的存储策略来保证数据存储的安全。该系统在数据存储时引入了内存缓冲处理技术, 采用环形缓冲区对数据包缓冲有很好的作用, 将用户缓冲器和内核缓冲器的大小分别设置为1 MB和6 MB, 同时将两者之间一次传送的最小数据块的大小设置为512 kB。

3 数据分析和处理

(1) 命令解析。在数据分析阶段, 首先要进行命令解析。MSNP协议涉及的命令多达几十个, 客户端所使用的命令也不同于服务器使用的命令。该系统重点解析了数据传输命令和握手命令, 对于服务器端命令主要解析“JOI”“USR”“IRO”和“MSG”, 客户端命令则主要解析“ANS”与“MSG”。

(2) 重组协议数据。对协议数据进行重组, 主要针对的是P2P消息, 若二进制头与尾之间的消息内容大小>1 202 B, 则消息将会被分片传输。二进制头中总共包括9个字段, 其中有3个字段与消息分片密切相关, 这3个字段分别为“Total Date Size (总数据大小) ”、“Data Offset (数据偏移量) ”和“Message Length (本条消息长度) ”。由于TCP处理模块已经处理了无序和重复的数据流, 因此MSNP协议模块中所输入的数据流都是有一定顺序的, 只需要按顺序取出数据即能完成协议数据重组。

(3) 数据存储。重组协议数据后, 要分析重组后的协议数据, 并进行数据提取。数据分析时, 主要针对的是负责建立和结束会话的MSNSLP消息, 在对其进行分析时, 不仅要分析取得传输的类型, 同时还要提取文件名, 为数据存储时的使用做好充分准备。以Unicode格式将传输文件的文件名存储在INVITE方法的Context中, 将自定义表情和显示图片的文件名封装在其各自的MSNObj对象中。

(4) 性能方面的考虑。当数据流量较大时, 数据处理会占用系统大量内存, 使系统效率降低。针对协议数据重组模块, 系统在控制时使用了定量存储机制和定时器机制。对大于1 MB的文件, 系统采用定量存储。当接收的数据大小达到一定量时进行一次存储操作, 但要注意操作不能过于频繁, 这样会增加磁盘读写的开销。此外, 为减少磁盘读写的开销, 管理员可以对系统预设的大小进行有效更改。当接收到第一个分片时, 针对相应的对象设置定时器。若在定时器所设定时间内有新的分片到达, 那么就还原定时器的超时时间。反之, 若在定时器超时的情况下还未接收到新的分片, 那么就认为此次传输失败, 为释放所占用的系统空间, 就要清除掉之前缓存的数据。

4 系统测试

即时通信监控系统设计完成之后, 要对其进行性能测试, 检查系统对指定数据的监听提取能力。此次测试给定的工作环境为:一台监控服务器主机, 若干客户机, 客户机通过交换机连接在一个局域网中, 同时与因特网互联。测试时间为周一至周五, 共5天, 每天测试时间为08:00—20:00, 同时每天客户机的数量维持在123~167。系统测试最终结果如表2所示。

由表2可知, 文件传输的提取率只有61.7%, 造成这种结果的原因可归纳为以下3点:首先是丢包率;其次是协议分析中对NAT穿越的判断结果;再次是当传输的双方在同一个局域网时, 实际数据没有通过服务器中转, 导致该系统仅能监听到传输邀请, 却无法监听实际传输的数据。自定义表情与显示图片的提取率都大于96%, 该系统在数据包捕获时采用的是过滤策略, 在网络流量比较大的情况下, 就会导致一定程度的丢包率, 从而使结果受到影响。测试结果中没有文字信息的相关评估, 主要是因为文字信息的传输缺少握手过程, 评估起来比较困难。该系统的设计实现可以在确保较小丢包率的基础上, 使文字信息的提取率接近或达到100%。

5 结语

综上所述, 即时通信的安全对企业来说是一项艰巨的任务, 关系到企业的经济效益。因此, 要不断地开发和利用新技术, 设计出切实有效的即时通信监控系统, 为企业的发展提供有力的支持。

摘要:主要针对中小企业网对即时通信的安全需求, 设计了MSN协议的监控分析系统, 介绍了系统总体结构, 讨论了数据采集与存储、分析与处理的过程, 并对MSNP协议进行了重点研究, 最后进行了系统测试。

关键词:即时通信,监控系统,企业网络安全

参考文献

[1]张永梅, 靳雁霞.编译原理学习与应用指导[M].北京:国防工业出版社, 2006

篇6:一款即时通信软件的设计与实现

客户机/服务器模型将网络应用程序分为客户和服务器两部分。客户方对服务器方发送信息请求,服务器方对其做出相应回答,提供服务。在TCP/IP[1]网络应用中,多数网络应用程序是使用客户机/服务器模型设计的。服务程序通常在一个众所周知的地址监听对服务的请求,也就是说,服务进程一直处于休眠状态,直到一个客户程序提出了请求信息。此时,服务程序被唤醒并且为客户提供服务,对客户的请求做出适当的反应。

当建立服务器程序时,为了接收客户请求,服务器程序必须对传输层的一个特定协议端口进行侦听。当服务器配置Socket接口时,它使用bind()函数让Socket执行体登记一个协议端口。也就是说,程序告诉Socket执行体使用哪一个协议端口进行数据传送。Socket执行体接着告诉传输层某个特定协议端口已被使用,并将其收到的所有数据传送给SocketAPI,如图1所示。

2 需求分析

作为局域网(校园网)聊天工具,终端用户数量较少,聊天信息采用服务器转发的方式,只要当前在线的用户都可以接收到信息,当然,也实现了两人之间的私聊功能。该即时通信系统包括服务器程序和客户端程序,服务器包括聊天信息即时转发、保存记录、查看服务器信息、数据库备份还原及数据库的初始化。客户端具有登录、注册、修改个人信息、聊天等功能,功能比较简单,可实现基本的聊天功能。系统的功能模块如图2所示。

3 设计与实现

3.1 设计思想

服务器端和客户端需要分别设计,其中客户端除了主聊天界面外,还加上了登录界面,以便以后扩展。作为聊天室系统,客户端信息全部来自于服务器,服务器端应能实时掌握所有客户登录、退出、对话情况,并能实时转发、广播给相应客户。由于服务器要和多个客户联系,所以在设计中采用了Winsock[2]控件数组的形式,其中下标为0的元素作为监听控件,当有客户登录、退出或者相互间发送消息时,能正确接收并作相应处理,其余控件数组元素当有客户连接时自动装入。客户端只需一个Winsock控件,应具有随时连接、断开服务器的功能,也应具有对接收到的信息做出正确分析、处理的能力。

3.2 关键通信技术-Winsock

本系统的开发工具是VB6.0,采用了面向网络连接的Winsock控件。Winsoc k[3]是不可见控件,控件文件名是MSWINSCK.OCX,它能实现机器与机器间点对点的连接以及对话,使用时要将此控件调入工具箱。Winsock控件可以使用两种协议:TCP协议和UDP协议。使用TCP协议来实现服务器-N客户模式。UDP可以实现点对点无服务器通信。

利用TCP协议通信必须分别建立客户应用程序和服务器应用程序。在创建客户应用程序时,必须知道服务器名或其IP地址(RemoteHost属性)及服务器进行侦听的端口(Re2motePort属性),然后调用Connect方法。创建服务器应用程序时,应设置一个侦听端口(LocalPort属性)并调用listen方法。当客户机需要连接时(connect),就会发生ConnectionRe2quest事件。为了完成连接,可以在ConnectionRequest事件中调用Accept方法。建立连接后,任何一方计算机都可以发送、接收对方数据。如果要发送数据,需调用SendData方法。

当接收到数据时,会发生DataArrival事件,调用DataArrival事件中的GetData方法就可以获得对方传送的数据。

3.3 数据库逻辑结构

根据系统的需要,系统中包括了程序设计中所需的2个外部数据表[4],如表1、表2所示。为了优化数据表结构,部分字段采用代码形式。

3.4 底层通信类

3.4.1 服务器端

为了使能及时响应用户的请求,当用户很多时,仍然能够适应要求,把侦听与发送数据的Socket分开,并分别都建立了多个实例,也就是说,支持多个端口的侦听,发送数据使用的是多个端口,只对侦听端口感兴趣,对发送数据的端口不感兴趣,因为,发送端口是多少都无所谓。

发送一个数据,需要等待响应信息的回来,如果在规定时间内,还没有收到确认信息,则认为发送数据丢失,将重试FailReDoTime次,如果还是没有确认信息发送回来,则返回发送失败,否则,返回发送成功。

因为服务器是多线程的发送数据,有一个请求,就建立一个线程进行处理。为每个发送socket设置一个是否忙的标志busy,当需要发送数据时,就选择一个空闲的sendsocket,设置为忙,然后发送数据,再设置回空闲,然后等待确认信息的回来。

3.4.2 客户端

发送一个数据,需要等待响应信息的回来,如果在规定时间内,还没有收到确认信息,则认为发送数据丢失,将重试FailReDoTime次,如果还是没有确认信息发送回来,则返回发送失败,否则,返回发送成功。

因为客户端可以多线程的发送数据,有一个请求,就建立一个线程进行处理。为每个发送socket设置一个是否忙的标志busy,当需要发送数据时,就选择一个空闲的sendsocket,设置为忙,然后发送数据,再设置回空闲,然后等待确认信息的回来。

关键代码如下:

If Cmdconnect.Caption=″连接″Then

'设置通信协议为TCP

'当不在本机上试验时,可为服务器主机名,这里均为本

'机

'设置远程主机端口号

'请求连接

Cmdconnect.Caption=″断开连接″End Sub

为了能接收服务器端的信息,下面这部分代码必不可少:

Wskclient.Accept RequestID'接受连接

End Sub

编写事件代码过程中有如下几个关键点:

(1)窗体刚装入时,应正确设置服务器的地址,这里假设为本机,设置本地端口为客户端中所要求的远程端口号,这样才能保证通信。代码如下:

Winsock(0).LocalPort=2001

Winsock(0).Listen'监听

(2)服务器应能同时连接多个客户并正确发送消息,代码如下:

'sockets用于记录连接用户数量

'7表示客户正处于连接状态

Winsock(i).SendData“系统消息:”&Txtsend'给客户发送信息

其中的DoEvents语句是必需的,否则就会有一部分在线客户不能正确显示相应信息。

(3)系统设计之初,采用了由客户关闭连接的办法,但此时就出现了同一客户再次连接不上服务器的错误。采用了由客户提出断开连接而由服务器正式关闭的办法,避免了这种错误的发生。涉及的部分代码如下:

End Sub

4 结语

本系统在VB6.0中编译通过,在本机及局域网中运行正常,能基本满足聊天需要。可以在网络中用一个固定的主机地址作为聊天讨论室,其他用户都选该机地址连接进入该聊天或讨论。

参考文献

[1]查普尔.TCP/IP协议原理与应用[M].北京:清华大学出版社,2005,3:67-68.

[2]王留洋.在VB中利用Winsock控件实现局域网通信[J].淮阴工学院学报,2005:76-77.

[3]俞承杭.用VB开发基于Winsock的聊天程序[J].计算机时代,2000:112-113.

上一篇:沥青行业市场分析下一篇:以修养为话题作文