已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第XX章java网络编程 实验指导书实验目标: 掌握套接字相关类的使用,掌握Web相关类的使用。第一部分 指导(50分钟)J包提供了支持基于套接字的客户端/服务器通信的类。Socket、ServerSocket、DatagramSocket类可实现用于面向连接的通信和无连接的同喜的客户端和服务器套接字。DatagramPacket类用于构造UDP数据报报文。套接字相关类的使用:以下是一个套接字的程序,在此程序中客户端将向服务器发送请求,而服务器将接收发送给它的请求并将其写入文件。下列程序有用于服务器和客户端程序的代码,客户端程序和服务器程序应该同一机器上运行。在运行FClient程序之前要先运行FServer。完成客户端的步骤如下:1. 创建一个具有服务器IP地址和端口号的Socket对象。Socket soc=new Socket(localhost,4001);2. 客户端接受输入。BufferedReader br=new BufferedReader(new InputStreamReader(System.in);System.out.println(请输入消息至服务器);String message=;String temp;while(!(temp=br.readLine().equals(send)message=message+temp+n;3. 客户端向服务器发送请求。PrintStream ps=new PrintStream(soc.getOutputStream();ps.print(message);4. 关闭PrintStream和Socket对象ps.close();soc.close();下面看一下完整的程序。1 创建FClient.java。并键入下列的代码。import java.io.BufferedReader;import java.io.InputStreamReader;import java.io.PrintStream;import .Socket;public class FClient public static void main(String args) throws Exception Socket soc=new Socket(localhost,4001);BufferedReader br=new BufferedReader(new InputStreamReader(System.in);System.out.println(请输入消息至服务器);String message=;String temp;while(!(temp=br.readLine().equals(send)message=message+temp+n;PrintStream ps=new PrintStream(soc.getOutputStream();ps.print(message);ps.close();soc.close();2 将程序以FClient.java 保存完成服务器端程序代码步骤如下:1. ServerSocket对象等待客户端在端口号4001上建立连接。ServerSocket ss=new ServerSocket(4001);2. 一旦客户端建立连接,accept()方法即被调用以接受连接。Socket soc=ss.accept();3. 服务器接受请求。BufferedReader br=new BufferedReader(new InputStreamReader(soc.getInputStream();String message=;String temp=null;dotemp=br.readLine();if(temp=null)break;message=message+temp;while(true);br.close();4. 服务器将请求写入文件。PrintStream ps=new PrintStream(new FileOutputStream(message.txt);ps.println(message);ps.close();下面看一下完整的程序。1. 创建FServer.java。并键入下列的代码。import java.io.BufferedReader;import java.io.FileOutputStream;import java.io.InputStreamReader;import java.io.PrintStream;import .ServerSocket;import .Socket;public class FServer public static void main(String args)throws ExceptionServerSocket ss=new ServerSocket(4001);Socket soc=ss.accept();BufferedReader br=new BufferedReader(new InputStreamReader(soc.getInputStream();String message=;String temp=null;dotemp=br.readLine();if(temp=null)break;message=message+temp;while(true);br.close();PrintStream ps=new PrintStream(new FileOutputStream(message.txt);ps.println(message);ps.close();System.out.println(已存储消息);2.将程序以FServer.java 保存运行程序,A先运行FServer 运行服务器端。B运行FClient 运行客户端在出现消息“输入消息至服务器”后,然后输入下列文本。This is an example for Socket related classes Welcome to socket program键入send 并按下回车键,输入的信息将保存早message.txt文件中。以上程序的输出结果如图1.1和1.2所示。图1.1图1.2第二部分 练习(50分钟)修改本阶段的第一部分中完成的程序,是服务器将向客户端返回响应。提示:客户端代码包含下列步骤:a 创建一个具有服务器IP地址和端口号的Socket对象,以创建至服务器的连接。b 客户端接收服务器发送的响应c 在客户端上显示响应d 不安比PrintStream和Socket对象。服务器代码包含下列步骤:a ServerSocket对象等待客户端在某端口号上建立连接。b 一旦客户端建立连接,accept()方法即被调用以接受连接。c 服务器接收请求。d 编写对客户端的响应。e 关闭服务器和客户端的套接字。客户端代码如下:import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.io.OutputStreamWriter;import java.io.PrintStream;import java.io.PrintWriter;import .Socket;public class FClient public static void main(String args) throws Exception Socket soc=new Socket(localhost,4001);System.out.println(Connection to Server);BufferedReader b=new BufferedReader(new InputStreamReader(System.in);InputStream in=soc.getInputStream();BufferedReader br=new BufferedReader(new InputStreamReader(System.in);OutputStream out=soc.getOutputStream();PrintWriter pw=new PrintWriter(new OutputStreamWriter(out);String k=;while(!k.equals(stop)k=b.readLine();pw.println(k);pw.flush();k=br.readLine();System.out.println(k);pw.close();br.close();soc.close();服务器端代码如下:import java.io.BufferedReader;import java.io.FileOutputStream;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.io.OutputStreamWriter;import java.io.PrintStream;import java.io.PrintWriter;import .ServerSocket;import .Socket;public class FServer public static void main(String args)throws ExceptionServerSocket ss=new ServerSocket(4001);System.out.println(Waiting for Client);Socket soc=ss.accept();System.out.println(Connection to Client);InputStream in=soc.getInputStream();BufferedReader br=new BufferedReader(new InputStreamReader(soc.getInputStream();OutputStream out=soc.getO
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第30课 家居收纳技巧 课件 2023-2024学年苏教版初中劳动技术七年级上册
- 肾内科基础知识:医学伦理学测试题
- 认识老年社会工作-理解老年社会工作理论
- 实验一答案七
- NK细胞在癌症治疗中的意义
- MUSIC方法-清华大学《现代信号处理》讲义-张贤达
- 2024时代楷模南昌舰主要先进事迹介绍
- 2024年六年级语文《梅花魂》教学反思
- 2024年黑龙江省大庆市中考语文押题卷(一)
- “一带一路”角度分析
- Z20名校联盟(浙江省名校新高考研究联盟)2024届高三第三次联考 地理试卷(含答案详解)
- 2024年辽宁省沈阳建筑大学招聘人才11人历年公开引进高层次人才和急需紧缺人才笔试参考题库(共500题)答案详解版
- 专题11 我国的地理差异-2024年中考地理一模试题分类汇编(全国专用)(解析版)
- 北师大版一年级数学下册单元测试卷及答案【全面】
- 建筑施工企业《八大员》继续教育模拟考试题库500题(含标准答案)
- 新修订《纪律处分条例》学习考试题库600题(含答案)
- 2024年第八届红十字应急救护大赛(省赛)考试题库及答案
- 安全事故应急响应
- 第6课+欧洲的思想解放运动【中职专用】《世界历史》(高教版2023基础模块)
- 2024届西藏省高考压轴卷生物试卷含解析
- 平面四杆机构动力学分析
评论
0/150
提交评论