基于局域网的即时通讯系统

2016-04-14 13:42魏明军刘美璠
电脑知识与技术 2016年5期
关键词:局域网

魏明军 刘美璠

摘要:该文讨论了基于局域网的即时通讯系统。首先分析了即时通讯系统的构架;其次讲解了即时通讯系统主要功能的实现,注册模块、登陆模块、聊天模块、文件传输模块等;最后给出了系统出错及其处理方法。

关键词:及时通讯;局域网;多服务器

中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2016)05-0039-02

Abstract: The instant messaging system based on local area network is discussed. First of all, it analyzes the architecture of instant messaging system, and then explains the main functions of instant messaging system, such as registration module, login module, chat module, file transfer module and so on. Finally, the system error and its processing method are given.

Key words: timely communication; local area network; multi server

即时通讯(Instant Messenger,简称IM)[1]是一种基于局域网或者Internet应用的实时交互方式,即时通讯的迅速发展正在急剧地改变人们通讯、协作和娱乐的方式。

1 系统架构分析

局域网即时通信软件总体功能划分为客户端和服务器端[2]。首先,启动服务器设置服务器的网络参数(IP和通讯端口),接着启动客户端,设置网络参数登录服务器,待服务器连接成功,注册用户,用户登录,添加好友,与好友通讯。在通讯过程中若与服务器的连接断开,客户端可以重新登录局域网内部的服务器,局域网内的客户端可以继续进行即时通讯。服务器端主要用户接收并转发客户端的聊天信息和控制信息。本系统采用了传统的客户端/服务器(C/S)架构[3]。使用Java网络编程[4-7]、文件操作、流处理以及多线程等技术实现系统的主要功能。传送消息使用简单快捷的UDP协议[8]。在数据库方面,采用Java提供的JDBC技术连接和操作数据库。

1)服务器端的处理过程:启动服务器后,首先启动连接线程用于接收客户端的连接请求,服务器端绑定指定的TCP端口,监听该端口的连接请求,接收到客户端的请求后便另外生成一个Socket[10],用于与该客户端进行通信,并将用户相关信息包括该用户的Socket保存在服务器端,并将新用户的信息发送给其他所有在线的客户端。然后启动通信线程用于接收、转发客户端的消息,通信线程使用UDP协议,绑定一个UDP端口,该UDP端口接收到一个UDP报文后,读取报文中的内容并判断报文的类型,将该报文转发给客户端。服务器端还需要启动一个控制线程,该控制线程用于与客户端传递控制信息,包括客户端退出消息,传送文件请求,传送文件确认以及传送文件拒绝等消息。该线程同样适用UDP协议,根据接收到不同类型的消息作出响应。

2)客户端的处理过程:客户端启动之后会打开用户登录界面,如果用户尚未注册,点击登录界面中的“注册”按钮打开用户注册界面,在用户注册界面中输入用户名密码等相关信息,点击“确定”按钮,客户端会连接数据库判断用户输入的信息是否正确,如果输入正确则注册成功,输入错误提示注册失败。如果用户已经注册过,便可以在登录界面输入用户名密码和服务器端的IP地址与服务器建立连接,建立连接后客户端会将用户的相关信息发送给服务器端。登录成功后显示软件的主界面。

2 系统主要功能的实现

2.1 注册模块

用户运行客户端程序,配置服务器参数,测试与服务器连接是否成功,连接成功后,新用户点击注册按钮后,按照提示输入用户名(用户检测是否已经注册)、密码、确认密码。如果用户名没有重复,则把用户信息存入服务器端的数据库的用户信息表中,流程图如图1所示。

2.2 用户登录

用户运行客户端程序,首先要配置服务器参数,测试与服务器连接是否成功,连接成功后,用户点击登录按钮后,按照提示输入用户名及其密码,如果用户名及密码与服务器端数据库的用户名及密码相匹配,成功登录到服务器。配置服务器的地址和端口成功后,已经注册的用户在客户端用户名和密码表示。当用户成功登录系统后,进入系统主界面。主界面的好友列表中显示所有当前在线的用户,点击好友项便可打开一对一的聊天窗口,在聊天窗口的下方输入信息,点击“发送”按钮将信息发送给服务器端。服务器端的通信线程接收到该信息后,根据信息的目的地址将其转发给目的端。用户可以将好友加入群发列表以发送消息给多个好友,流程图如图2所示。

2.3 聊天模块

1)点对点聊天:主界面中的好友列表显示当前在线的好友,点击好友条目,弹出聊天窗口,用户在聊天窗口下方输入聊天信息,点击“发送按钮”后,软件将用户输入信息和当前聊天好友相关信息封装成一个Message类的对象,并将该Message对象type设置成“通信消息”,然后将信息发送给服务器端,服务器端接受到后根据信息类型和目的地址将其转发给目的客户机。2)群发消息:在日常使用中经常需要向多个好友发送通知,如果要进行群发消息,首先先右击好友列表中的好友条目,在弹出菜单中点击“添加到多人聊天”,便可以将该好友加入到多人群发列表中。点击主界面下方的“群发”按钮便可打开群发消息界面。群发消息是输入框中的内容分别发送给群发列表中的每一个好友。

3 系统出错及处理方法

系统出错信息主要有两个部分,一是本系统的错误信息,二是数据库错误信息。系统的错误信息将以统一的面貌表现出来,采用Windows提示信息方式。

系统的出错及处理方法分为以下几类:

1)程序错误:此类错误属于程序设计时由于设计人员出错产生的错误,这种错误一般是无法更改的,需由设计人员对程序错误进行修正,在系统调试时应尽量考虑设计管理系统的各种使用情况,将程序错误的出现尽量减小到最少。

2)网络错误:主要由于拥护网络硬件或软件配置导致的网络错误,如网络中断,网络传输掉包等故障,此类故障将导致系统无法运行,运行中突然退出或死机,系统运行效率显著下降等。

3)基本配置错误:在与数据库建立连接时必须保证相应的应用程序的配置正确,由于用户安装其他软件或中途关机都有可能造成基本配置的改变,基本配置的改变将导致客户断无法与服务器连通,使系统无法使用,恢复一般为系统重安装或由相关技术人员对系统进行重新设置。

4 结束语

基于局域网的即时通讯系统已实现的主要功能模块有:由注册模块、登录模块、聊天模块、文件传送模块。登录和注册模块通过数据库验证和保存用户信息;聊天模块通过服务器转发聊天信息,服务器端根据消息中目的地址转发给接收端。文件传输模块使用点对点的TCP连接,发送方和接收方经过请求和确认后直接建立连接,而不用经过服务器。服务器管理模块主要是对服务器和连接到服务器的客户机管理操作。

参考文献:

[1] 辛福贵.对几种即时通信开发技术的研究[M].哈尔滨:黑龙江科技信息出版社,2009:6-20.

[2] 郭春雷.基于Jabber协议的手机即时通讯系统的研究与实现[D].贵州:贵州大学,2007.

[3] imon C. Covert Channel and Tunneling over the HTTP protocol Detection: GW implementation theoretical design[EB/OL].http://www.gray-world.net/cn/projects/papers/html/ cctde.html,2008-11-22.

[4] ike.D,Schiffman.Libnet.Packet.Assembly.System.Available.at. http://www.packetfactory.net/Projects/Libnet/.2009-06-24.

[5] Mukherjee.B,Heberlein.L.T,Levitt K. N. Network Intrusion Detection[J]. IEEE Network,2000,8(3):26-41.

[6] H.S.Teng,K. Chen,S.C.Lu. Adaptive Real-time Anomaly Detection Using Inductively Generated Sequential Patterns. Research in Security and Privacy[C].2005.

[7] 杜佳荣,马建生.Java网络编程技术与实践[M].北京:清华大学出版社,2008:120-345.

[8] Risso.F,Degioanni.L. An Architecture for High Performance Network Analysis. Computers and Communications,2001.Proceedings.Sixth IEEE Symposiumon[C].2001.

[9] 任泰明.TCP/IP协议与网络编程[M].西安:西安电子科技大学出版社,2011:78-102

[10] 沈刚.多服务器即时消息系统模型的设计与实现 [D].上海:上海师范大学,2004.

猜你喜欢
局域网
基于F5G的无源光局域网在智慧医院的应用
轨道交通车-地通信无线局域网技术应用
基于VPN的机房局域网远程控制系统
基于虚拟局域网的收费系统网络构建
基于局域网的安全加固策略研究
基于802.1Q协议的虚拟局域网技术研究与实现
局域网性能的优化
家庭无线局域网的测试方法及应用
局域网隐性病毒及清除策略
论局域网中ARP欺诈原理与防范措施