西农java实习八_网络编程.docVIP

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实用标准文案 精彩文档 信 息 工 程 学 院实验报告的内容与格式按任课教师的要求书写。 实验报告的内容与格式按任课教师的要求书写。 《Java语言程序设计》实验报告 学院:信息学院 班级:********** 姓名:pprp 学号:**********3 成绩: 实习目标 描述掌握Socket通信 掌握UDP数据报通信 掌握多线程网络编程 实验过程 任务一:掌握Socket类的使用 在两台机器上分别运行以下服务器端程序和客户端程序,观察程序的多次运行结果,回答问题。 观察服务器端和客户端的输出,说明添加注释的每行代码作用。 截图:两次服务器与客户端的输出,可以发现两次所用到的端口是随机生成的是不一致的。 代码如下: 问题回答: S1:实例化ServerSocket 对象,并指定服务器中的端口为2018 S2:ServerSocket对象的accept()方法示例化Socket对象,并阻塞进程,等待用户端的连接 S3:打印服务器端套接字连接的IP地址 S4: 打印服务器端套接字连接的远程端口 S5: 得到服务器端套接字绑定的本地IP地址及端口 S6: 打印服务器端套接字绑定的本地端口 C1:实例化Socket 对象 C2:将InetSocketAddress 类实例化的对象中所包含的服务器主机IP及端口,调用connect()方法,传入至Socket 类中,与服务器进行连接 C3:打印用户端套接字连接的IP地址 C4: 打印用户端套接字连接的远程端口 C5: 获取用户端套接字绑定的本地IP地址及端口 C6: 打印用户端套接字绑定的本地端口 任务二: 使用TCP协议实现文件传送 在当前项目的根目录新建两个文件夹:“source”和“destination”,在source中放置两个文件:“cartoon.jpg”以及“file.docx”。这两个文件见实习附件。实现一个服务器端程序Server,服务器端可以通过文件流直接读取文件内容。实现一个客户端程序Client,客户端程序运行后,提示用户输入文件名。如,用户在客户端输入“file.docx”并回车,则程序通过TCP协议读取服务器端的数据,将该文件传送一个副本保存在“destination”目录中。 结果截图: 代码截图: Server.java Client.java 说明:本次实验遇到的最大的困难就是本题,通过询问老师得到解决。 问题描述:客户端向服务器发送一个文件名,服务器端通过文件流将文件读入内存,然后再用网络流输出到客户端,客户端接受到文件流然后用文件流保存到本地。在客户端接受网络流的时候会发现客户端程序进入死循环,无法进行下一个文件的读写。 问题出现原因:由于客户端通过网络流进行读写的时候与文件读写是不一样的,不会出现读到文件尾部的情况,而是会一直等待从而造成死循环。 问题解决方法: 设置一个文件末尾标记进行读写,如果读取到该标记则说明结束,break断开死循环。 任务三:现有一个Triangle(三角形)类: 思考:为什么Triangle需要实现Serializable接口? 服务器用于接收客户端传来的Triangle对象,计算三角形面积,将计算结果传给客户端。 连接服务器之前: 点击“连接服务器”实现连接,点击“send”提交计算请求: 基本要求:使用ServerSocket类和Socket类实现单线程对象的发送与接收。实现计算结果的发送与接收。服务器端可以不使用界面。 效果截图: 代码截图: Triangle.java TriangleFrame.java TCPServcer.java TCPClient.java 说明: 需要先启动server服务器端再启动客户端,再代码构建的时候应该分两部分: 链接部分,生成socket,serversocket对象,并连接起来。 处理部分,interact进行交互完成数据传输。 加入界面以后由于需要在点击链接按钮以后再进行连接,所以要单独写一个用来构造的函数。 任务四:使用UDP数据报传输数据 用UDP数据报传输数据,实现两个终端的消息通信 使用Java命令分别运行服务器端和客户端 基本要求:实现两个终端UDPA和UDPB,UDPB向UDPA发送“TIME”命令,UDPA接收到命令后,将当前UDPA的系统时间发送给UDPB。UDPB将该时间输出。 结果截图: 代码截图:UDPA.java UDPB.java 说明: 应该先运行UDPB再运行UDPA,因为UDPB是接受端,但UDPA是发送端,应该先生成接受端,然后进行发送。 疑问和建议 本次实验进行比较艰难,多亏了老师和同学的帮助,非常感谢!

文档评论(0)

dmz158 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档