- 1、本文档共48页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1.5 用Java 编写客户/服务器程序 在Java中,有三种套接字类:.Socket、.ServerSocket和DatagramSocket。其中Socket和ServerSocket类建立在TCP协议基础上,DatagramSocket 类建立在UDP协议基础上。 传输层向应用层提供了套接字Socket 接口,Socket 封装了下层的数据传输细节,应用层的程序通过Socket来建立与远程主机的连接以及进行数据传输。 1.5.1 创建EchoServer 1.5.1 创建EchoServer 服务器程序通过一直监听端口,来接收客户程序的连接请求。在服务器程序中,需要先创建一个ServerSocket对象,在构造方法中指定监听的端口: ServerSocket server=new ServerSocket(8000); //监听8000端口 ServerSocket的构造方法负责在操作系统中把当前进程注册为服务器进程。服务器程序接下来调用ServerSocket 对象的accept()方法,该方法一直监听端口,等待客户的连接请求,如果接收到一个连接请求,accept()方法就会返回一个Socket 对象,这个Socket对象与客户端的Socket对象形成了一条通信线路: Socket socket=server.accept(); //等待客户的连接请求 1.5.1 创建EchoServer Socket 类提供了getInputStream()方法和getOutputStream()方法,分别返回输入流InputStream 对象和输出流OutputStream 对象。程序只需向输出流写数据,就能向对方发送数据;只需从输入流读数据,就能接收来自对方的数据。 与普通I/O流一样,Socket 的输入流和输出流也可以用过滤流来装饰。在以下代码中,先获得输出流,然后用PrintWriter 装饰它,PrintWriter 的println()方法能够写一行数据;以下代码接着获得输入流,然后用BufferedReader 装饰它,BufferedReader 的readLine()方法能够读入一行数据: OutputStream socketOut = socket.getOutputStream(); //参数true 表示每写一行,PrintWriter缓存就自动溢出,把数据写到目的地 PrintWriter pw=new PrintWriter(socketOut,true); InputStream socketIn = socket.getInputStream(); BufferedReader br=new BufferedReader(new InputStreamReader(socketIn)); 1.5.1 创建EchoServer 例程1-2 EchoServer.java import java.io.*; import .*; public class EchoServer { private int port=8000; private ServerSocket serverSocket; public EchoServer() throws IOException { serverSocket = new ServerSocket(port); System.out.println(服务器启动); } public String echo(String msg) { return echo: + msg; } private PrintWriter getWriter(Socket socket)throws IOException{ OutputStream socketOut = socket.getOutputStream(); 1.5.1 创建EchoServer return new PrintWriter(socketOut,true); } private BufferedReader getReader(Socket socket)throws IOException{ InputStream socketIn = socket.getInputStream(); return new BufferedReader(new Input
您可能关注的文档
- 三级第9课看连图.ppt
- 永嘉县小学13年级语文、数学、科学、英语学科项目评价考核指导意见课案.doc
- 咏怀八十二首其一课案.ppt
- 三甲新品管圈.ppt
- 上海工程技术大学城市轨道交通公务概论第五章轨道工程.ppt
- 三角高程测量.ppt
- 用flotherm对简单的封闭式设备进行热仿真]课案.doc
- 三角形的高、中线和角平分线.ppt
- 上海工程技术大学机械设计A复习题CH03机械零件的强度张美华20160919.ppt
- 幼儿注意力的培养课案.ppt
- 2023年年中国电子政务项目可行性研究方案.docx
- 2023年MBTS项目可行性评估方案.docx
- 2023年富氧水充氧机项目风险可行性方案.docx
- 2023年特种海绵项目风险可行性方案.docx
- 2021年浙江省金华市公开招聘综合应急救援人员模拟测试卷三含答案.docx
- 2022年河南省开封市公开招聘综合应急救援人员必刷经典测试二卷含答案.docx
- 2024年安徽省巢湖市公开招聘综合应急救援人员摸底考试三卷含答案.docx
- 2023年福建省南平市公开招聘综合应急救援人员摸底考试一卷含答案.docx
- 2022年甘肃省白银市公开招聘综合应急救援人员专用训练一卷含答案.docx
- 2022年安徽省巢湖市公开招聘综合应急救援人员测试二卷含答案.docx
文档评论(0)