收藏 分享(赏)

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

上传人:weiwoduzun 文档编号:5594318 上传时间:2019-03-09 格式:DOC 页数:22 大小:2.12MB
下载 相关 举报
西农java实习八_网络编程.doc_第1页
第1页 / 共22页
西农java实习八_网络编程.doc_第2页
第2页 / 共22页
西农java实习八_网络编程.doc_第3页
第3页 / 共22页
西农java实习八_网络编程.doc_第4页
第4页 / 共22页
西农java实习八_网络编程.doc_第5页
第5页 / 共22页
点击查看更多>>
资源描述

1、信 息 工 程 学 院 1 Java 语言程序设计实验报告学院:信息学院 班级:* 姓名:pprp 学号:*3 成绩:1、实习目标(1) 描述掌握 Socket 通信(2) 掌握 UDP 数据报通信(3) 掌握多线程网络编程2、实验过程任务一:掌握 Socket 类的使用在两台机器上分别运行以下服务器端程序和客户端程序,观察程序的多次运行结果,回答问题。实验报告的内容与格式按任课教师的要求书写。观察服务器端和客户端的输出,说明添加注释的每行代码作用。截图:两次服务器与客户端的输出,可以发现两次所用到的端口是随机生成的是不一致的。代码如下:问题回答:S1:实例化 ServerSocket 对象,

2、并指定服务器中的端口为 2018S2:ServerSocket 对象的 accept()方法示例化 Socket 对象,并阻塞进程,等待用户端的连接S3:打印服务器端套接字连接的 IP 地址S4: 打印服务器端套接字连接的远程端口S5: 得到服务器端套接字绑定的本地 IP 地址及端口S6: 打印服务器端套接字绑定的本地端口C1:实例化 Socket 对象C2:将 InetSocketAddress 类实例化的对象中所包含的服务器主机 IP 及端口,调用 connect()方法,传入至 Socket 类中,与服务器进行连接C3:打印用户端套接字连接的 IP 地址C4: 打印用户端套接字连接的远程

3、端口C5: 获取用户端套接字绑定的本地 IP 地址及端口C6: 打印用户端套接字绑定的本地端口任务二: 使用 TCP 协议实现文件传送在当前项目的根目录新建两个文件夹:“source”和“destination ”,在source 中放置两个文件: “cartoon.jpg”以及“file.docx” 。这两个文件见实习附件。实现一个服务器端程序 Server,服务器端可以通过文件流直接读取文件内容。实现一个客户端程序 Client,客户端程序运行后,提示用户输入文件名。如,用户在客户端输入“file.docx”并回车,则程序通过 TCP 协议读取服务器端的数据,将该文件传送一个副本保存在“d

4、estination” 目录中。结果截图:代码截图:Server.javaClient.java说明:本次实验遇到的最大的困难就是本题,通过询问老师得到解决。问题描述:客户端向服务器发送一个文件名,服务器端通过文件流将文件读入内存,然后再用网络流输出到客户端,客户端接受到文件流然后用文件流保存到本地。在客户端接受网络流的时候会发现客户端程序进入死循环,无法进行下一个文件的读写。问题出现原因:由于客户端通过网络流进行读写的时候与文件读写是不一样的,不会出现读到文件尾部的情况,而是会一直等待从而造成死循环。问题解决方法: 设置一个文件末尾标记进行读写,如果读取到该标记则说明结束,break 断开死

5、循环。任务三:现有一个 Triangle(三角形)类: 思考:为什么 Triangle 需要实现 Serializable 接口? 服务器用于接收客户端传来的 Triangle 对象,计算三角形面积,将计算结果传给客户端。 连接服务器之前: 点击“连接服务器”实现连接,点击“send”提交计算请求: 基本要求:使用 ServerSocket 类和 Socket 类实现单线程对象的发送与接收。实现计算结果的发送与接收。服务器端可以不使用界面。效果截图:代码截图:Triangle.javaTriangleFrame.javaTCPServcer.javaTCPClient.java说明:需要先启动

6、 server 服务器端再启动客户端,再代码构建的时候应该分两部分:1、链接部分,生成 socket,serversocket 对象,并连接起来。2、处理部分,interact 进行交互完成数据传输。加入界面以后由于需要在点击链接按钮以后再进行连接,所以要单独写一个用来构造的函数。任务四:使用 UDP 数据报传输数据 用 UDP 数据报传输数据,实现两个终端的消息通信 使用 Java 命令分别运行服务器端和客户端 基本要求:实现两个终端 UDPA 和 UDPB,UDPB 向 UDPA 发送“TIME ”命令,UDPA 接收到命令后,将当前 UDPA 的系统时间发送给 UDPB。UDPB 将该时间输出。结果截图:代码截图:UDPA.javaUDPB.java说明:应该先运行 UDPB 再运行 UDPA,因为 UDPB 是接受端,但 UDPA 是发送端,应该先生成接受端,然后进行发送。3、疑问和建议本次实验进行比较艰难,多亏了老师和同学的帮助,非常感谢!

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 网络科技 > Java

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报