JAVA版Socket平台的设计文档

1.  总体设计

1.1            基本设计概念和处理流程

1.1.1    程序划分

主要分为服务端和客户端两个部分。

客户端部分又分为同步与异步两种模式。

1.1.2    处理流程描述

JAVA版接口平台主要实现与外部接口的服务端和客户端的通讯。并提供业务接口,允许基于当前内核实现各种业务。

2.  平台设计思想

2.1            业务无关性

本平台设计的核心思想是实现通讯平台的核心功能,尽可能使代码与业务剥离,提高代码的可重用性。

2.2            核心功能模块

本平台主要由几个核心模块所组成对各种业务的支持

2.2.1    通信模块

使用JAVA1.4+版本提供的无堵塞IO实现服务端和客户端的通讯,并提供同步和异步处理两种方式

2.2.2    线程池服务

使用了JDK 1.5 带的线程池,提供一个线程池的服务,为服务端或客户端提供多线程处理的功能。本身实现了Singleton模式和自带了监控线程,实现了自我管理。

2.2.3    字节处理模块

为解析协议提供简便的方法处理字节数组。

2.3            主要接口

为了实现通信平台的业务无关性,本平台设计了一些接口提供给业务开发实现。

2.3.1    协议解析接口

为所有解析协议提供统一协议解析类接口。主要是为了统一协议解析的方式。

2.3.2    业务接口

业务接口主要有两种:业务逻辑接口和业务实现接口。

2.3.2.1   业务逻辑接口

主要为了处理每一个指令的业务流程,例如先读取,再处理业务,再返回结果;或者先发送指令,再等待返回结果。

2.3.2.2   业务实现接口

主要处理每个协议中每一个指令所对应的业务网处理。

2.3.3    注册器接口

专门为客户端登录服务器时提供的统一的注册方式。

3.  平台设计

3.1            服务端的设计

3.1.1    模块设计图

3.1.2    功能

l         通讯服务

l         并发处理客户端请求

l         自监控

l         可自定义的业务接口

3.2            客户端设计

3.2.1    模块设计图

3.2.2    功能

l         与服务端通讯

l         可自定义的业务接口

l         支持异步模式

4.  业务接口设计

4.1            服务端业务接口

4.1.1    业务逻辑接口

通过继承一个业务逻辑类接口和一个抽象业务逻辑类实现统一的业务逻辑接口实现。主要功能有:

l         读取请求内容

l         发送请求

l         读取配置文件

l         协议解析

l         反射调用业务实现接口

4.1.2    业务实现接口

对于单个指令的业务实现

4.2            客户端业务接口

通过继承客户端类,通过调用通讯接口实现客户端的业务流程,主要功能有:

l         发送指令

l         接收指令

l         重置连接

5.  系统自我监控设计

5.1            客户端

5.1.1    断开连接后重连

客户端连接到服务端时会自动判断是否正常连接,如果在通讯过程中,发现网络中断,将重新发起一个连接请求,并自动注册到服务器上。

5.1.2    同步通信超时

客户端提供异步通信和同步通信。在同步通信是一个线程堵塞的方法,该方法会等待结果的返回才退出该方法。但如果等待时间超过配置的超时时间,会抛出一个通信超时的异常,并退出该方法。

5.2            服务端

5.2.1    线程回收

服务端处理请求都是使用线程池处理每个客户端的请求。在客户端通讯的过程中如果连接断开了,或者发生了一些特定的异常,则线程池监控线程会将该线程中的连接断开,并将线程回收到线程池中。

6.  协议解析设计

6.1            协议接口

实现一个协议接口和一个协议抽象类,每个通信节点所使用的协议都必须实现该接口,里面封装了一些协议基本的信息和一些基本的协议解析方法。主要包含方法:

l         协议完整性校验接口

l         指令解析接口

l         设置包头长度

l         设置包体长度

l         设置包尾长度

6.2            指令接口

实现一个协议里每个指令的调用,设计目的是将指令的字符转化为对象,可以方便地面向对象开发。主要包含方法:

l         指令初始化接口

l         请求参数接口

l         应答参数接口

7.  系统出错处理设计

所有的日志信息和出错信息会抛出到同一个方法中,由系统统一处理。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java聊天室的设计与实现socket 设计软件源码+WORD毕业论文文档 Java聊天室系统主要用于实现在线聊天,基本功能包括:服务端和客户端。本系统结构如下: (1)服务端: 1、能够开启和关闭服务器 2、等待着客户端从特殊端口发送的请求 3、监听的端口并不是固定的,服务端的端口是能够自定义的 4、能够广播消息向所有连接到服务器的用户 (2)客户端: 1、能够和服务端进行连接 2、新的用户能够注册账号 3、通过用户名以及密码完成用户的登陆,连接到聊天室 4、用户能够在聊天室发送消息 目 录 摘要 I Abstract II 目 录 III 1 引言 1 2 网络聊天室的简介 2 2.1网络聊天室现状和发展 2 3 完成网络聊天室的技术以及环境 4 3.1 Java的介绍 4 3.2 Java的特点 4 3.3 TCP/IP协议的知识 5 3.4 Socket的介绍 6 3.5 开发工具 6 4 网络聊天室系统的设计 7 4.1项目概述 7 4.2 网络聊天室系统的设计 7 5 系统详细设计 8 5.1 服务器模块的设计 8 5.2 客户端模块的设计 8 6 系统测试 9 6.1 单元测试 9 6.2 系统测试 9 7 总结 10 参考文献 11 致谢 12 1 引 言 随着社会的发展和互联网技术的发展,普通老百姓也能够拥有属于自己的计算机,在平常的生活中也离不开了网络技术的支持,而替代了电话和写信的网上即时聊天成为了人们十分常见的沟通方式。 本软件是采用sun公司开发提供的java语言制作的,是基于C/S模型的网上聊天室。这个系统分为两个部分,服务端和客户端。服务端的工作主要是来监听和接收来自客户端的请求,然后处理客户端发来的消息,并通知客户端。而客户端的功能是能够让新用户注册,通过用户名密码登陆并且使用该系统。通过服务端和客户端的协同工作最终使用户能够使用网络聊天室,在聊天室中完成用户和用户之间的沟通。 2 网络聊天室简介 当今社会,能够实现即时通讯的软件使用频率是十分恐怖的,网络聊天室作为它的一种,使用人数也是相当可观的。国内处于垄断的QQ,业界老大哥微软的MSN都是大众关注和使用的焦点,普通老百姓也能够拥有属于自己的计算机,在平常的生活中也离不开了网络技术的支持,它是人们的生活变得十分的便利和高效,你能在网上找到自己想要的信息和有共同兴趣爱好的朋友。而且,现在很多的软件还有多人聊天,电子会议等一系列功能。 2.1 网络聊天室现状和发展 网上即时聊天室是广泛使用的一种技术,它的简单方便的沟通方式能够被广大的网上用户所使用。在当今社会,网上聊天是互联网服务重要的一环,有大约43%的用户都会使用网上聊天,是排在第四位。但是有很多人认为网络聊天室就是一种用来娱乐和打发时间的方式,而缺少了实际的价值。就目前来说,能够完成收入的网络聊天室其实并不多。它应该怎么实现自己的商业价值外界并没有过多的关注。 现在,很多企业都会开发属于自己的聊天室,用户通过该网站注册的用户名以及密码登陆到企业的服务器上。在聊天室中,用户之间可以通过输入文字以及各种符号来表达自己的想法,来达到互相之间的沟通。目前,开发一个供用户使用的网络聊天室的技术门槛并不是很高,也不需要大量的资金,国家对于这方面的管制和政策也没有太限制,所以当今社会上聊天室的竞争其实是很激烈的,腾讯,网易,新浪都有属于自己的网络聊天室
《网络程序设计》课程设计 基于socket的聊天系统设计 摘要:本设计通过研究讨论,设计基于socket编程的网络聊天系统,服务器端采用多线程并发服务方式,多客户端能同时连接服务器,并且客户端之间能进行通信。程序通过了验证与测试,证明了系统的可用性、易用性、完善性。 关键词:socket、server、client、聊天系统 引言 socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄。应用程序通常通过"套接字"向网络发出请求或者应答网络请求。一个聊天系统的通信模块就是Socket程序的设计与实现,聊天系统分为服务器端和客户端,服务器端的任务就是接受客户端的不同请求,做出不同的响应,并处理多客户端之间的通信。 3.1头文件 /************************************************************ *chat.h * 基于socket的聊天客户机和服务器的头文件 *设计思路: * 客户机提出各种请求,服务器根据不同请求,发送不同的响应. *关键问题: * 客户机和服务器之间协议制订 *************************************************************/ #include // for sockaddr_in #include // for socket #include // for socket #include // for printf #include // for exit #include // for bzero /************************************************************ *服务器端口定义 *************************************************************/ #define CHAT_SERVER_PORT (6666) /************************************************************ *报文类型定义 *************************************************************/ #define NO_COMMAND (100) //客户端发送报文类型 #define REGISTER (1) #define LOGIN (2) #define GET_USER_LIST (3) #define TALK_TO (4) #define EXIT (5) #define CHANGE (6) #define GET_MESSAGE (7) //服务器端发送报文类型

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值