全球旧事资料 分类
动的发起连接请求。当多个用户同时连接到服务器时,经由服务器的接收与转发便可以实现客户之间的通信。
对于整体系统的流程,也是分为两部分,即客户端的发起请求,服务器响应请求。首先是客户端的登陆,客户端在登陆时,必须设置所想要连接的服务器,然后客户端就会根据设置的服务器IP地址,向服务器发起建立连接请求。而服务器端是始终在监听网络状态的,主要检测到有一个连接请求,那么服务器就会给当前的发起端分配一个服务线程,用于处理它的各种请求。
对于客户端的各种请求,实际上都是通过在客户发往服务器的各种字符流区分的,具体的方法就是在消息的头部以及尾部添加特殊字符串,从而实现服务器对消息请求的识别。比如对于登陆信息,消息的头部就是“PEOPLO”而对于私聊中的消息,头部就是“SEC”其他的同理都添加了头部。当然,对于客户端来说,这些都是透明的,用户的操作并没有受到任何影响。在服务器端,消息被检测分析后,变回根据具体的目的进行处理,比如是私聊消息,服务器便会根据其尾部的目的信息,向目标端转发该条消息。
这里额外要说的是,该系统特别的对用户发来的消息进行了加密处理,即用户的各种具体信息,不仅能够防止向第三方的泄漏,而且即使服务器端出现异常,信息也不会泄漏。
对于私聊的方式,该系统所采用的方法类似于QQ的通信方式,由发起方主动连接,当目的方接收到连接请求后,会主动建立一个私聊窗口,从而实现私聊。
f22总体设计流程图
Server建立服务器监听socket等待并接收连接请求
接收请求后创建socket连接
I
putStream
Clie
t
建立连接
创建socket向服务器发请求
开始通信
I
putStream
OutputStream
OutputStream
关闭socket
结束通信
关闭socket
f学生信息管理软件详细设计
31界面设计
由于这里界面设计源代码比较简单,这里不再列出。311服务器界面设计
312客户端界面设计
服务器界面
f登陆界面注册界面
f聊天室界面
32通信功能实现方法
列举部分实现通信功能的主要代码AppServerjava文件publicclassAppServerexte
dsThread
privateServerSocketserverSocket
privateServerFramesFrame
privatestaticVectoruserO
li
e
ewVector11
privatestaticVectorv
ewVector11
f创建服务器启动服务监听1001端口
publicAppServersFrame
ewServerFrametryserverSocket
ewServerSocket1001获取服务器的主机名和IP地址I
etAddressaddressI
etAddressgetLocalHostsFrametxtServerNamesetTextaddressgetHostNamesFrametxtIPsetTextaddressgetHostAddresssFrametxtPortsetText
好听全球资料 返回顶部