




已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
广州大学学生实验报告 开课学院及实验室:计算机科学与工程实验室 2014 年 12 月 05 日 学院 计算机科学与 教育软件学院 年级/专 业/班 姓名 学号 实验课程名称 Java 语言 成绩 实验项目名称 综合应用实验 指导老师 樊志平 1、实验目的 实验十三 网络编程(1) 1. 掌握使用 Socket 类的属性和基本方法, 2. 掌握使用 ServerSocket 类的方法 实验十四 网络编程(2) 1. 掌握使用 DatagramSocket 类的属性和基本方法, 2. 掌握使用 DatagramPacket 类的方法 二、实验器材 1.MacBook Pro 一台 2.操作系统:OS X Yosemite 3.编程软件:eclipse 三、实验内容及原理 实验十三 网络编程(1) 1 掌握使用使用 Socket、ServerSocket 类的方法。 一使用 Socket、ServerSocket 服务器端程序设计模型 (1) 在服务器端,先创建类 ServerSocket 的实例对象,注册在服务器端进行连接的端口号以 及允许连接的最大客户数目。 (2) 调用类 ServerSocket 的成员方法 accept 来等待客户端的连接,当有客户端与服务器端建 立连接时,accept 方法将返回连接通道在服务器端的套接字。通过该套接字可以与客户 端进行数据通信 (3) 调用类 Socket 的成员方法 getInputStream 和 getOutputStream 获得该套接字所 对应的输入流(InputStream)和输出流(OutputStream) (4) 通过输入流(InputStream)和输出流(OutputStream)与客户端进行数据通信, 处理从客户端获得的数据以及需要向客户端发送数据 (5) 通信完毕后,关闭输入流和输出流和套接字 客户端 (1) 创建类 Socket 的实例对象,与服务器建立连接,在建立实例对象时须指定服务器端的主 机名和端口号,主机名和端口号必须完全匹配才能建立连接 (2) 调用类 Socket 的成员方法 getInputStream 和 getOutputStream 获得该套接字所 对应的输入流(InputStream)和输出流(OutputStream) (3) 通过输入流(InputStream)和输出流(OutputStream)与客户端进行数据通信, 处理从客户端获得的数据以及需要向客户端发送数据 (4) 通信完毕后,关闭输入流和输出流和套接字 实验十四 网络编程(2) 1掌握使用使用 DatagramSocket、DatagramPacket 类的方法。 一 使用 DatagramSocket、DatagramPacket (1) 在服务器端,先创建类 DatagramSocket 的实例对象,注册在服务器端进行连接的端口 号。等待客户程序的请求 (2) 创建据报的缓冲区,调用 DatagramPacket 创建接受数据包 (3) 调用类 DatagramSocket 的成员方法 receive 来接受客户端的数据,并获取客户端 IP 地 址和端口 (4) 创建包含发送数据和向给定 IP 地址和端口发送的应答数据包; (5) 调用类 DatagramSocket 的成员方法 send 来发送数据报 (6) 通信完毕后,关闭 UDPDaytimeServer 并退出; 客户端 (1) 创建类 DatagramSocket 的实例对象 (2) 创建请求和应答缓冲区,调用 DatagramPacket 创建发送数据包,在创建数据包时须 指定服务器端的主机名和端口号,和需要发送的数据与数据长度 (3) 调用类 DatagramSocket 的成员方法 send 来发送请求 (4) 调用类 DatagramSocket 的成员方法 receive 来接受数据报 (5) 通信完毕后,关闭输入流和输出流和套接字 四、实验过程原始数据记录 实验十三 网络编程(1) 1.使用 ServerSocket 编写一个时间服务器程序,它能够向客户程序发送以下格式的 时间信息。 时间格式为:Sat Jan 15 10:45:20 CST 2005 (1) 服务器端 JTimeServer.java import .*; import java.io.*; import java.util.*; public class DaytimeServer public static void main(String args) ServerSocket timeSocket; Socket clientSocket; OutputStream out; Date currDate; if(args.lengthc out.writeDouble(b); out.writeDouble(c); else inputA.setText(“你输入的 3 个数不构成三角形 “); catch(Exception ee) inputA.setText(“请输入数字字符“); public static void main(String args) Client win=new Client(); (2)服务器端程序 import java.io.*; import .*; import java.util.*; public class Server public static void main(String args) ServerSocket server=null; ServerThread thread; Socket you=null; while(true) try server=new ServerSocket(4331); catch(IOException e1) System.out.println(“正在监听“); try you=server.accept(); System.out.println(“客户的地址:“+you.getInetAddress(); catch (IOException e) System.out.println(“正在等待客户“); if(you!=null) new ServerThread(you).start(); else continue; class ServerThread extends Thread Socket socket; DataOutputStream out=null; DataInputStream in=null; String s=null; ServerThread(Socket t) socket=t; try in=new DataInputStream(socket.getInputStream(); out=new DataOutputStream(socket.getOutputStream(); catch (IOException e) public void run() while(true) double a=0,b=0,c=0,area=0; try a=in.readDouble(); b=in.readDouble(); c=in.readDouble(); double p=(a+b+c)/2.0; area=Math.sqrt(p*(p-a)*(p-b)*(p-c); out.writeDouble(area); catch (IOException e) System.out.println(“客户离开“); break; 运行结果: 服务器: 客户端: 实验十四 网络编程(2) 1.使用 DatagramSocket 编写一个时间服务器程序,它能够向客户程序发送以下格式的 时间信息。 时间格式为:Sat Jan 15 10:45:20 CST 2005 算法提示: 打开一个数据报 DatagramSocket; 开始循环: 创建客户程序请求数据报的缓冲区并等待请求; 当接收到请求时获取发送者(即客户程序) 的 IP 地址和端口; 创建包含当前日期和时间信息,可向给定 IP 地址和端口发送的应答数据包; 发送上述应答数据包; 结束循环; 关闭 UDPDaytimeServer 并退出; (1)服务器端程序 import .*; import java.io.*; import java.util.*; public class UDPDaytimeServer public static void main(String args) DatagramSocket timeSocket; Date currDate; byte inBuffer; byte outBuffer; DatagramPacket request; DatagramPacket reply; InetAddress clientAddress; int clientPort; if(args.length1) System.out.println(“Usage: java UDPDaytimeServer port“); System.out.println(“Example: java UDPDaytimeServer 1234“); System.exit(-1); try timeSocket=new DatagramSocket(Integer.parseInt(args0); System.out.println(“时间服务器已经启动,正在侦听断口“+args0+“.“); try while(true) inBuffer=new byte1; request=new DatagramPacket(inBuffer,inBuffer.length); / 等待客户程序的请求 timeSocket.receive(request); / 获得客户程序的地址和端口 clientAddress = request.getAddress(); clientPort = request.getPort(); System.out.println(“接受来自“ + clientAddress + “, port “ + clientPort + “的时间服务请求.“); / 创建并发送应答数据 currDate = new Date(); outBuffer = currDate.toString().getBytes(); reply = new DatagramPacket(outBuffer, outBuffer.length, clientAddress, clientPort); timeSocket.send(reply); finally timeSocket.close(); catch(IOException ex) System.out.println(ex); catch(NumberFormatException e) System.out.println(“illeagl port “+args0); System.exit(0); (1)客户端程序:UDPDaytimeClient import .*; import java.io.*; public class UDPDaytimeClient public static void main(String args) String host; InetAddress hostAddress; byte outBuffer=new byte1; byte inBuffer=new byte512; DatagramPacket request; DatagramPacket reply; DatagramSocket timeSocket; if(args.length2) System.out.println(“usage: java UDPDaytimeClient serverName serverPort“); System.out.println(“Example: java UDPDaytimeClient 1234“); else try host=args0; hostAddress=InetAddress.getByName(host); System.out.println(“正在取得“+ hostAddress.toString()+“的日期.“); timeSocket=new DatagramSocket(); / 创建请求和应答缓冲区 request = new DatagramPacket(outBuffer, outBuffer.length, hostAddress, Integer.parseInt(args1); reply = new DatagramPacket(inBuffer, inBuffer.length); / 发送请求并读取应答 try timeSocket.setSoTimeout(5*1000); timeSocket.send(request); timeSocket.recei
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 沈阳师范大学《高层建筑结构设计》2023-2024学年第二学期期末试卷
- 外墙消防栓施工方案
- 2025签订买卖合同注意事项
- 2025至2031年中国床上用品四件套行业投资前景及策略咨询研究报告
- 圆弧木饰面施工方案
- 《体育教学方法与实践》课件
- 住宅防噪音施工方案
- 《气候变化课件》课件
- 2025至2030年中国花生碎仁数据监测研究报告
- 2025至2030年中国电子测高仪数据监测研究报告
- 奖品、礼品供应服务方案
- 八年级历史下第一单元复习教案
- 不动产登记数据安全保密责任书
- 物业小区保洁清洁方案
- 银行从业资格考试题库附参考答案(共791题精心整理)
- 年产20吨阿齐沙坦原料药生产车间的设计和实现材料学专业
- 原地面高程复测记录表正式版
- 高等学校建筑学专业本科(五年制)教育评估标准
- 沪宁城际接触网专业验收标准
- MQ2535门座起重机安装方案
- 过程审核VDA6.3检查表
评论
0/150
提交评论