深圳大学实验报告课程名称:计算机网络实验项目名称:实验5Socket网络编程学院:计算机与软件学院专业:物联网工程指导教师:崔来中报告人:严俞学号:2014160179班级:物联网工程01实验时间:2016/4/20实验报告提交时间:2016/4/27教务处制实验目的:学习网络编程基本概念、InetAddress的应用、URL的应用、URLConnection的应用;掌握Socket的TCP通信、Socket的UDP通信;掌握通过TCP实现网络文件传输的方法,掌握TCP连接是基于字符流实验环境:使用Windows操作系统;Internet连接Eclipse+Java开发环境实验内容:1.InetAddress类和URLConnection类的使用:1)使用InetAddress类的方法获取本地机的名称和IP地址。2)使用InetAddress类的方法获取网站地址,如果存在多个IP地址,要求全部返回。3)使用URL类下载深圳大学首页,并统计下载得到网页文件的大小。2.Socket、ServerSocket类和DatagramPacket、DatagramSocket类的使用:1)利用Socket类和ServerSocket类编写一个C/S程序,实现C/S通信。客户端向服务器端发送Time命令,服务器端接受到该字符串后将服务器端当前时间返回给客户端;客户端向服务器端发送Exit命令,服务器端向客户端返回“Bye”后退出。2)编写一数据报通信程序,实现简单的聊天功能。“聊天内容”和“输入文本”分别为当前聊天的历史信息和当前要传送出去的聊天文本。“确定”、“清空”、“退出”三个按钮分别实现发送当前聊天文本、清空当前聊天文本和退出系统的功能。3.通过Socket和ServerSocket类实现TCP文件传输:1)利用Socket类和ServerSocket类,编写一个C/S程序,实现网络文件传输。客户端向服务器端发送请求,服务器端当接受到客户端的请求之后,先向其传输文件名,当客户端接受完毕之后,向客户端传输文件客户端连上服务器后接收传输文件,并进行改名(文件名可自行定义)存在本地。实验步骤:1.InetAddress类和URLConnection类的使用:1)编写代码获取并输出本地机的名称和IP地址;2)编写代码使用InetAddress类的方法获取并输出网站地址;3)编写代码下载深圳大学首页,并输出网页文件的大小;2.Socket、ServerSocket类和DatagramPacket、DatagramSocket类的使用:1)上图为客户端代码;上图为服务器代码;运行服务器与客户端如下图所示:上图为客户端分别输入Time与Exit指令的反馈;上图为服务器分别接收Time与Exit指令的输出;2)使用Eclipse插件WindowBuilder进行程序界面设计;编写代码使用DatagramSocket与DatagramPacket处理网络通信;使用Runnable接口实现不同线程的接收通信信息;生成两个带线程的聊天窗口,设置发送与接收端口,则可以进行通信;以下进行程序测试:以上为通信双方窗口运行情况,“发送”,“清空”和“退出”按钮运行正常;3.通过Socket和ServerSocket类实现TCP文件传输:1)以上为客户端部分关键代码;以上为服务器部分关键代码;运行过程如下:服务器等待客户端请求;客户端启动,接收到服务器文件名;服务器接到客户端请求;输入保存路径;服务器发送文件完毕;客户端接收完成;test.txt文件完整传输为test2.txt;实验结果:以下是各个小实验的运行结果:1.1)编写代码获取并输出本地机的名称和IP地址;2)编写代码使用InetAddress类的方法获取并输出网站地址;3)编写代码下载深圳大学首页,并输出网页文件的大小;2.1)上图为客户端分别输入Time与Exit指令的反馈;上图为服务器分别接收Time与Exit指令的输出;2)以上为通信双方窗口运行情况,“发送”,“清空”和“退出”按钮运行正常;3.1)服务器发送文件完毕;客户端接收完成;test.txt文件完整传输为test2.txt;实验小结:通过本次实验,学习了网络编程基本概念,学会了InetAddress的应用、URL的应用以及URLConnection的应用,掌握了Socket的TCP通信、Socket的UDP通信、通过TCP实现网络文件传输的方法以及TCP连接是基于字符流;通过编写聊天窗口程序,掌握了将UDP网络通信编程与JavaSwing可视化编程以及线程相结合的代码编写方法;指导教师批阅意见:成绩评定:指导教师签字:年月日备注: