欢迎来到天天文库
浏览记录
ID:31735980
大小:77.29 KB
页数:6页
时间:2019-01-17
《java简单聊天程序实验报告及代码》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、一、实验内容实验题目:1、使用URL访问用户指定网站,获取该网页的HTML代码显示给用户,并能保存至指定文件中。2、使用ServerSockt,Socket对象实现两个用户之间的端到端聊天。要求:采用UI界面设计,界面友好。二、实验过程(这是实验报告极其重要的内容。要抓住重点,可以从理论和实践两个方面考虑。这部分要写明依据什么知识点以及使用方法进行实验以及实验步骤。不要简单照抄实习指导,更不可写一大堆源代码)题目1、1、分析题目,了解URL类及其方法。2、设计一个模拟浏览器界面,有一个文本框,文本区域,一个搜索按钮,一个保
2、存按钮。3、在搜索事件里面写获取IITML的代码,在保存你面写将内容保存至文件中。题目2、1、分析题目,了解importjava.net.*,包下用到的一些类,比如URL,Socket和ServerSocket,以及这些类的方法,根据要实现的功能,进行调用。了解端到端的通讯,以及怎样建立连接。2、设计界面:服务器界面,客户端界面。3、写出对内容的读写代码,注意哪部分功能,在什么时候实现,应该写在哪部分。以及怎样通信:如图OutputstreamInnutStreani-Outputstream>InnutStream三、实
3、验结果(应先列出测试数据,要写明实验的现象,实验数据的处理等。对于实验结果的表述,一般有三种方法:文字叙述(根据实验目的将实验结果系统化、条理化,用准确的专业术语客观地描述实验现象和结果,要有吋间顺序以及各项指标在吋间上的关系),图表(用表格或坐标图的方式使实验结果突出、清晰,便于相互比较,尤其适合于分组较多,且各组观察指标一致的实验,使组间异同一目了然;每一图表应有表目和计量单位,应说明一定的中心问题),屏幕截图(实验结果也可以是屏幕截图,充分表明实验的实际情况)。在实验报告中,可任选其中一种或几种方法并用,以获得最佳效
4、果。)题目一、界面与结果截图:M浏览器题目2、服务器端截屏:发送陆Server已和客户端逹立连接可以通信Is包y:你好Client*y:你好Client*y:你叫什么名字?Isay:我叫张三I你呢?客户端截屏:陆Client■H"xi发送:Serversay:你好Isay:你好I*y:你叫什么名字?Serversay:我叫张三Serversay:你呢?四、讨论与分析(这是实验报告的主要部分。根据相关的知识点以及编程规范和经验对所得到的实验结果进行解释和分析。如果所得到的实验结果和预期的结果一致,那么它可以验证什么知识点,可
5、以验证语言的什么使用方法?实验结果有什么意义?说明了什么问题?这些是实验报告应该讨论的;如果所得到的实验结果和预期的结果不相符,那么误差在什么地方,是什么原因造成的,准备怎么改进;如果实验根本就进行不下去,那么原因在什么地方。不要简单地复述课本上的理论而缺乏自己主动思考的内容。)1、了解了URL类的应用和方法,比如通过openStream()方法打开到此URL的连接并返回一个用于从该连接读入的InputStream,将读入的内容显示到文本域,保存按钮实现的功能和记事本的另存功能一样,这里就不再叙述。2、在写实现端到端的聊天
6、的过程中遇到很多问题:刚开始把所有的代码都写到发送按钮里,造成很多错误,而在经过老师的分析过后,才清楚了serversocket和socket的通信是怎样建立起来的,如下图,是服务器端和客户端建立通信的过程:ServerClient张!#)Socket(host,port#)ServerSocket.accept。AttempttheconnectionSocketOQatRutSgani——OutnutStreamInputStreamZ//CloseSocketCloseSocket后來重写的时候就把循环读的代码写在界
7、面的一个构造函数里面,结果造成,界面不能显示,后来经过仔细分析代码之后,了解了APPLICATION自身生成的方法之后,才知道程序停留在循坏读取那里,之后的代码都不能执行。应该把读取操作写在界面显示之后。3>在服务器和客户的定义那里frame.ss=newServerSocket(6240)和frame.s=newSocketC'l27.0.0.ln,6240)其中port部分应该是两个一致,来建立连接。但是如果在我的代码里面把其中的6240改成6000就不能进行通信。所以就很疑问,不是两个定义的端口号一样就可以进行通信的
8、吗?为什么有些值就不行?五、附录:关键代码(给出适当注释,可读性高)客户端:在Frome类中定义变量:Sockets;OutputStreamos;InputStreamis;1、将以下代码写在界面可见后面,即进行循环的读操作。try{frame,s=newSocket(/z127.0.0.1",624
此文档下载收益归作者所有