java聊天室实验报告 网络编程技术实验报告

上传人:第*** 文档编号:57495343 上传时间:2018-10-22 格式:PDF 页数:17 大小:523.52KB
返回 下载 相关 举报
java聊天室实验报告 网络编程技术实验报告_第1页
第1页 / 共17页
java聊天室实验报告 网络编程技术实验报告_第2页
第2页 / 共17页
java聊天室实验报告 网络编程技术实验报告_第3页
第3页 / 共17页
java聊天室实验报告 网络编程技术实验报告_第4页
第4页 / 共17页
java聊天室实验报告 网络编程技术实验报告_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《java聊天室实验报告 网络编程技术实验报告》由会员分享,可在线阅读,更多相关《java聊天室实验报告 网络编程技术实验报告(17页珍藏版)》请在金锄头文库上搜索。

1、网络编程技术网络编程技术网络编程技术网络编程技术 大作业大作业大作业大作业项目开 发人董海阳开发人 班级2009-03开发人 学号2009082303开发人专 业软件工 程 项目名 称基于 Java 的 TCP 一对一聊天程序成绩(70%)网络编程技术大作业版本:0.1.0第 2页修修 改改 履履 历历修改编号日期修改人版本号修改内容12010-6-10董海阳10确定一对一聊天程序的设计方法与基本技术22010-6-11董海阳11搭建界面,测试界面32010-6-14董海阳12实现 TCP 通信,完成主要功能42010-6-17董海阳20解决了界面焦点问题网络编程技术大作业版本:0.1.0第

2、3页目目录录1文档概述 41.1文档目的和范围41.2术语/缩略语.41.3参考文档52系统概述 52.1项目说明52.2需求分析52.3可行性或难点分析63通信协议设计63.1通信流程63.2数据格式63.3会话举例74系统设计说明84.1模块整体结构图84.2使用说明书85模块详细说明85.1核心通信模块85.1.1socket 函数的功能.85.1.2通信时序图105.2用户接口模块105.3类/接口/函数说明166结论 176.1自我评价或总结176.2需要进一步学习的内容176.3系统扩展计划17网络编程技术大作业版本:0.1.0第 4页1 文档概述文档概述1.1 文档目的和范围文档

3、目的和范围撰写本文档的目的是为使用者提供必要的参考文档,使其能够通过文档说明了解一对一聊天程序的使用过程以及通信原理,为使用者提供基本的指导。本文档随着版本的更改,也在进行不断的改进,以使使用者可以了解到系统的变化。更重要的是,使用者或者程序开发人员可以通过本文档,快速的了解本程序的 TCP 通信机制,本文档还提供了关键的必要的程序代码,方便用户修改、学习。适用范围:聊天程序使用者,功能相似的程序开发人员,以及其他需要了解本系统工作原理的人员。1.2 术语术语/缩略语缩略语序 号术语/缩略语说明1API应用程序编程接口2Socket网络套接口3FrameJava 程序框架4Java Appli

4、cationJava 桌面应用程序5目标 IP要连接的目标地址6端口目标地址需要开放的“大门” 例如常见的 8080 端口、1394 端口7Listener监听器8Client客户端9Sever服务器10Flag检测标志通过为 1 未通过为 011InputStream输入流,用于客户端接受消息12OutputStream输出流,用于服务器发送消息13Awt.eventJava 窗口事件类,本实验中用于控制窗口焦点网络编程技术大作业版本:0.1.0第 5页1.3 参考文档参考文档序 号文档名作者时间版本1Java 大学实用教程张跃平张跃平2012.6.12第二版2TCP/IP 网络编程技术基础

5、王雷2012.6.14第一版3Java 一对一网络编程百度文库2012.6.142 系统概述系统概述2.1 项目说明项目说明聊天室是一项应用广泛,并且实用性强的一个非常典型的人机交互系统。在信息世界里,聊天工具的使用是非常频繁的,如 MSN、QQ、校内通,之类的聊天工具许多人都正在使用。此次设计的聊天室系统虽然其功能简单,但是对于开发今后复杂系统具有重要意义。基于 Java 的 TCP 一对一聊天程序实现客户端与服务器之间的聊天通信, 也可实现客户端与客户端的聊天通讯,通过设置目标 IP、端口,建立连接,可以实现基本的文字通讯功能。并对异常错误有一定的检测能力。项目的开发环境为 Myeclip

6、se5.5,通过 javaapplication 使用。2.2 需求分析需求分析经过对题目的分析,对系统做出了必要的需求分析。系统需要一个客户端、一个服务器端。在本程序中,程序既可以作为客户端也可以作为服务器。首先,登录系统,输入需要连接的 IP 和端口, 这时如果只打开一个窗口, 则会出现通讯错误的提示, 因为没有服务器监听,供客户端连接。再打开一个程序窗口,此时进行连接的操作,提示连接成功。两个程序窗口之间建立连接。客户端通过下方的文本域输入消息,系统调用 socket 的相关函数,发送消息给另外一个客户端,然后另外一个客户端收到消息,完成一次通信。双方都具有收发消息的功能。网络编程技术大

7、作业版本:0.1.0第 6页2.3 可行性或难点分析可行性或难点分析本程序的难点在于对通信机制的了解以及实现,同时窗口之间的通讯也需要认真分析。3 通信协议设计通信协议设计3.1 通信流程通信流程设置侦听端口3.2 数据格式数据格式变量名称类型说明textareaString发送消息框textareaString显示系统消息、通信消息AddressString目标主机 IP 地址PortString端口号IP 地址端 口服务聊天室服务器启动服务聊天连接聊天室客户端异常退出网络编程技术大作业版本:0.1.0第 7页3.3 会话举例会话举例服务器等待中输入新的 IP 与端口建立连接成功服务端也显示

8、连接成功双方进行通信 互发消息网络编程技术大作业版本:0.1.0第 8页4 系统设计说明系统设计说明4.1 模块整体结构图模块整体结构图4.2 使用说明书使用说明书打开客户端,进入监听模式,等待其他客户端连接。打开另外的客户端,输入 IP 地址端口号,连接成功,可以进行通信。 打开的界面既可以是客户端(发出连接请求 connect),也可以是服务器端(等待连接 listen)。 每一个用户可以选择连接要访问的点或监听可能要来访问的客户,成功连接后,两者可进行点到点通讯,双方可以相互发消息5 模块详细说明模块详细说明5.1 核心通信模块核心通信模块5.1.1 socket 函数的功能函数的功能1

9、、创建套接字socket()功能:使用前创建一个新的套接字格式:SOCKET PASCAL FAR socket(int af,int type,int procotol);聊天室服务端发 送 系 统 消 息退 出 服 务 器停 止 服 务启 动 服 务端 口 服 务网络编程技术大作业版本:0.1.0第 9页参数:af: 通信发生的区域type: 要建立的套接字类型procotol: 使用的特定协议2、指定本地地址bind()功能:将套接字地址与所创建的套接字号联系起来。格式:int PASCAL FAR bind(SOCKET s,const struct sockaddr FAR * na

10、me,int namelen);参数:s: 是由 socket()调用返回的并且未作连接的套接字描述符(套接字号) 。其它:没有错误,bind()返回0,否则 SOCKET_ERROR地址结构说明:struct sockaddr_inshort sin_family;/AF_INETu_short sin_port;/16位端口号,网络字节顺序struct in_addr sin_addr;/32位 IP 地址,网络字节顺序char sin_zero8;/保留3、建立套接字连接connect()和 accept()功能:共同完成连接工作格式:int PASCAL FAR connect(SOC

11、KET s,const struct sockaddr FAR * name,int namelen);SOCKET PASCAL FAR accept(SOCKET s,struct sockaddr FAR * name,int FAR * addrlen);参数:同上4、监听连接listen()功能:用于面向连接服务器,表明它愿意接收连接。格式:int PASCAL FAR listen(SOCKET s, int backlog);5、数据传输send()与 recv()功能:数据的发送与接收格式:int PASCAL FAR send(SOCKET s,const char FAR

12、* buf,int len,int flags);int PASCAL FAR recv(SOCKET s,const char FAR * buf,int len,int flags);参数:buf:指向存有传输数据的缓冲区的指针。网络编程技术大作业版本:0.1.0第 10页5.1.2 通信时序图通信时序图客户通过 Socket 建立与服务器的连接。 服务器与客户都通过构造 objectInputStream, objectoutputStream来建立输入输出流,然后双方通过该输入输出流来相互传递信息,一旦收到客户方的连接请求,服务器accept()方法返回一个新建的 Socket 对象。

13、客户端然后向服务器发送消息,如图所示:客户端服务器发送请求侦听建立连接消息通信5.2 用户接口模块用户接口模块客户端及服务器端核心代码,界面设计及模块调用如下:public class One2OneChatpublic static void main(String args)LoginFrame lf = new LoginFrame(“输入目标“); lf.show();/登录界面 输入IP地址及端口 class LoginFrame extends JFrameJButton BOK;JLabel LdesAddr, Lport;JTextField TFdesAddr, TFport

14、;String desAddr, port;LoginFrame()LoginFrame(String title)super(title);Frame t = this;网络编程技术大作业版本:0.1.0第 11页BOK = new JButton(“确定“);LdesAddr = new JLabel(“目标 IP“);Lport = new JLabel(“端口“); TFdesAddr = new JTextField(desAddr,12);TFport = new JTextField(port,12);/TFpassword.setEchoChar(*);BOK.addActio

15、nListener(new BOKListener(t);setBackground(Color.black);setBounds(350,250,200,128);setLayout(new FlowLayout(FlowLayout.CENTER,5,7);add(LdesAddr);add(TFdesAddr);add(Lport);add(TFport);add(BOK);setResizable(false);/setVisible(true);addWindowListener(new WindowAdapter()public void windowClosing(WindowE

16、vent e)System.exit(0););/建立监听 class BOKListener implements ActionListenerFrame t;BOKListener()BOKListener(Frame t)this.t = t;public void actionPerformed(ActionEvent e)desAddr = TFdesAddr.getText();port = TFport.getText();t.setVisible(false);Messenger m = new Messenger(desAddr, port);m.start();/网络编程技术大作业版本:0.1.0第 12页class Messenger

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 教育/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号