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

上传人:工**** 文档编号:488800384 上传时间:2022-09-30 格式:DOC 页数:15 大小:324KB
返回 下载 相关 举报
java聊天室实验报告网络编程技术实验报告_第1页
第1页 / 共15页
java聊天室实验报告网络编程技术实验报告_第2页
第2页 / 共15页
java聊天室实验报告网络编程技术实验报告_第3页
第3页 / 共15页
java聊天室实验报告网络编程技术实验报告_第4页
第4页 / 共15页
java聊天室实验报告网络编程技术实验报告_第5页
第5页 / 共15页
点击查看更多>>
资源描述

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

1、网络编程技术大作业项目开发人董海阳开发人班级2009-03开发人学号2009082303开发人专业软件工程项目名称基于Java的TCP-对一聊天程序成绩(70%)修改履历修改编号日期修改人版本号修改内容12010-6-10董海阳1.0确定一对一聊天程序的设计方法与基本技术22010-6-11董海阳1.1搭建界面,测试界面32010-6-14董海阳1.2实现TCP通信,完成主要功能42010-6-17董海阳2.0解决了界面焦点问题目录1 文档概述41.1 文档目的和范围41.2 术语/缩略语42 参考文档5系统概述52.1 项目说明52.2 需求分析53 可行性或难点分析6通信协议设计63.1

2、通信流程63.2 数据格式64 会话举例7系统设计说明84.1 模块整体结构图85 使用说明书8模块详细说明85.1.1 核心通信模块8socket函数的功能85.1.2 通信时序图105.2 用户接口模块106 类/接口/函数说明16结论176.1 自我评价或总结176.2 需要进一步学习的内容176.3 系统扩展计划171文档概述1.1文档目的和范围撰写本文档的目的是为使用者提供必要的参考文档,使其能够通过文档说明了解一对一聊天程序的使用过程以及通信原理,为使用者提供基本的指导。本文档随着版本的更改,也在进行不断的改进,以使使用者可以了解到系统的变化。更重要的是,使用者或者程序开发人员可以

3、通过本文档,快速的了解本程序的TCP通信机制,本文档还提供了关键的必要的程序代码,方便用户修改、学习。适用范围:聊天程序使用者,功能相似的程序开发人员,以及其他需要了解本系统工作原理的人员。1.2术语/缩略语序号术语/缩略语说明1API应用程序编程接口2Socket网络套接口3FrameJava程序框架4JavaApplicationJava桌面应用程序5目标IP要连接的目标地址6端口目标地址需要开放的“大门”例如常见的8080端口、1394端口7Listener监听器8Client客户端9Sever服务器10Flag检测标志通过为1未通过为011InputStream输入流,用于客户端接受消

4、息12Outputstream输出流,用于服务器发送消息13Awt.eventJava窗口事件类,本实验中用于控制窗口焦点1.3参考文档序号文档名作者时间版本1Java大学实用教程张跃平第二版2TCP/IP网络编程技术基础王雷第-版3Java对一网络编程百度文库2系统概述2.1项目说明聊天室是一项应用广泛,并且实用性强的一个非常典型的人机交互系统。在信息世界里,聊天工具的使用是非常频繁的,如MSN、QQ、校内通,之类的聊天工具许多人都正在使用。此次设计的聊天室系统虽然其功能简单,但是对于开发今后复杂系统具有重要意义。基于Java的TCP对一聊天程序实现客户端与服务器之间的聊天通信,也可实现客户

5、端与客户端的聊天通讯,通过设置目标IP、端口,建立连接,可以实现基本的文字通讯功能。并对异常错误有一定的检测能力。项目的开发环境为Myeclipse5.5,通过javaapplication使用。2.2需求分析经过对题目的分析,对系统做出了必要的需求分析。系统需要一个客户端、一个服务器端。在本程序中,程序既可以作为客户端也可以作为服务器。首先,登录系统,输入需要连接的IP和端口,这时如果只打开一个窗口,则会出现通讯错误的提示,因为没有服务器监听,供客户端连接。再打开一个程序窗口,此时进行连接的操作,提示连接成功。两个程序窗口之间建立连接。客户端通过下方的文本域输入消息,系统调用socket的相

6、关函数,发送消息给另外一个客户端,然后另外一个客户端收到消息,完成一次通信。双方都具有收发消息的功能。2.3可行性或难点分析本程序的难点在于对通信机制的了解以及实现,同时窗口之间的通讯也需要认真分析3通信协议设计3.1通信流程3.2数据格式变量名称类型说明textareaString发送消息框textareaString显示系统消息、通信消息AddressString目标主机IP地址PortString端口号输入目标40000目际IP端口确定x旦等待连接中在综口:3.3会话举例O400:一1次1灰1盈Oo-1JO:夢rO2o1ooflrIFTI动炀馀C&,也,也J就按嚣舊:40:U连待等并服务

7、器等待中输入新的IP与端口建立连接成功服务端也显示连接成功-IFIx|$土iKssiJ-.兵ms-1C|x|岂T葦彗阳的I机聾人哦二二乂三12丁一1.电00皿匚二乂皀井天尿證尿-JJ1I1JJUW吗(旳用咽网均旳INIMIMMMMKWIN双方进行通信互发消息4系统设计说明4.1模块整体结构图4.2使用说明书打开客户端,进入监听模式,等待其他客户端连接。打开另外的客户端,输入ip地址端口号,连接成功,可以进行通信。打开的界面既可以是客户端(发出连接请求connect),也可以是服务器端(等待连接listen)。每一个用户可以选择连接要访问的点或监听可能要来访问的客户,成功连接后,两者可进行点到点

8、通讯,双方可以相互发消息5模块详细说明5.1核心通信模块函数的功能1、创建套接字socket()功能:使用前创建一个新的套接字格式:SOCKETPASCALFARsocket(intaf,inttype,intprocotol);参数:af:通信发生的区域type:要建立的套接字类型procotol:使用的特定协议2、指定本地地址bind()功能:将套接字地址与所创建的套接字号联系起来。格式:intPASCALFARbind(SOCKETs,conststructsockaddrFAR*name,intnamelen);参数:s:是由socket()调用返回的并且未作连接的套接字描述符(套接字

9、号)。其它:没有错误,bind()返回0,否则SOCKET_ERROR地址结构说明:structsockaddr_inshortsin_family;/AF_INETu_shortsin_port;/16位端口号,网络字节顺序structin_addrsin_addr;/32位IP地址,网络字节顺序charsin_zero8;保留3、建立套接字连接connect()和accept()功能:共同完成连接工作格式:intPASCALFARconnect(SOCKETs,conststructsockaddrFAR*name,intnamelen);SOCKETPASCALFARaccept(SOC

10、KETs,structsockaddrFAR*name,intFAR*addrlen);参数:同上4、监听连接listen()功能:用于面向连接服务器,表明它愿意接收连接。格式:intPASCALFARlisten(SOCKETs,intbacklog);5、数据传输send()与recv()功能:数据的发送与接收格式:intPASCALFARsend(SOCKETs,constcharFAR*buf,intlen,intflags);intPASCALFARrecv(SOCKETs,constcharFAR*buf,intlen,intflags);参数:buf:指向存有传输数据的缓冲区的指

11、针。通信时序图客户通过Socket建立与服务器的连接。服务器与客户都通过构造objectlnputStream,objectoutputstream来建立输入输出流,然后双方通过该输入输出流来相互传递信息,一旦收到客户方的连接请求,服务器accept()方法返回一个新建的Socket对象。客户端然后向服务器发送消息,如图所示:客户端侦听服务器发送请求建立连接消息通信5.2用户接口模块客户端及服务器端核心代码,界面设计及模块调用如下publicclassOne2OneChatpublicstaticvoidmain(Stringargs)LoginFrameIf=newLoginFrame(输入

12、目标);lf.show();/登录界面输入IP地址及端口classLoginFrameextendsJFrameJButtonBOK;JLabelLdesAddr,Lport;JTextFieldTFdesAddr,TFport;StringdesAddr,port;LoginFrame()LoginFrame(Stringtitle)super(title);Framet=this;BOK=newJButton(确定“);LdesAddr=newJLabel(目标IP);Lport=newJLabel(端口);TFdesAddr=newJTextField(desAddr,12);TFpor

13、t=newJTextField(TFpassword.setEchoChar(*);BOK.addActionListener(port,12);newBOKListener(t);setBackground(Color.black);setBounds(350,250,200,128);setLayout(newFlowLayout(FlowLayout.CENTER,5,7);add(LdesAddr);add(TFdesAddr);add(Lport);add(TFport);add(BOK);setResizable(false);/setVisible(true);addWindow

14、Listener(newWindowAdapter()publicvoidwindowClosing(WindowEvente)System.exit(0););/建立监听implementsActionListenerclassBOKListenerFramet;BOKListener()BOKListener(Framet)this.t=t;publicvoidactionPerformed(ActionEvente)desAddr=TFdesAddr.getText();port=TFport.getText();port);t.setVisible(false);Messengerm=newMessenger(desAddrm.start();/classMessengerextendsThreadStringdesAddr;Stringport;intiport;TextAreacontent,send;JButtonBsend;ChatFramecf;Stringtitle;Socketclient;ServerSocketss;OutputStreamWr

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

当前位置:首页 > 办公文档 > 活动策划

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