1 / 48
文档名称:

用Java 编写客户服务器程序.ppt

格式:ppt   大小:315KB   页数:48页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

用Java 编写客户服务器程序.ppt

上传人:xunlai783 2018/1/8 文件大小:315 KB

下载得到文件列表

用Java 编写客户服务器程序.ppt

相关文档

文档介绍

文档介绍:用Java 编写客户/服务器程序
在Java中,有三种套接字类:.Socket、.ServerSocket和DatagramSocket。其中Socket和ServerSocket类建立在TCP协议基础上,DatagramSocket 类建立在UDP协议基础上。
传输层向应用层提供了套接字Socket 接口,Socket 封装了下层的数据传输细节,应用层的程序通过Socket来建立与远程主机的连接以及进行数据传输。
图1-18 套接字可看过是通信连接两端的收发器
创建EchoServer
图1-19 服务器与客户利用ServerSocket 和Socket来通信
创建EchoServer
服务器程序通过一直监听端口,来接收客户程序的连接请求。在服务器程序中,需要先创建一个ServerSocket对象,在构造方法中指定监听的端口:
ServerSocket server=new ServerSocket(8000); //监听8000端口
ServerSocket的构造方法负责在操作系统中把当前进程注册为服务器进程。服务器程序接下来调用ServerSocket ept()方法,该方法一直监听端口,等待客户的连接请求,如果接收到一个连接请求,accept()方法就会返回一个Socket 对象,这个Socket对象与客户端的Socket对象形成了一条通信线路:
Socket socket=(); //等待客户的连接请求
创建EchoServer
Socket 类提供了getInputStream()方法和getOutputStream()方法,分别返回输入流InputStream 对象和输出流OutputStream 对象。程序只需向输出流写数据,就能向对方发送数据;只需从输入流读数据,就能接收来自对方的数据。
与普通I/O流一样,Socket 的输入流和输出流也可以用过滤流来装饰。在以下代码中,先获得输出流,然后用PrintWriter 装饰它,PrintWriter 的println()方法能够写一行数据;以下代码接着获得输入流,然后用BufferedReader 装饰它,BufferedReader 的readLine()方法能够读入一行数据:
OutputStream socketOut = ();
//参数true 表示每写一行,PrintWriter缓存就自动溢出,把数据写到目的地
PrintWriter pw=new PrintWriter(socketOut,true);
InputStream socketIn = ();
BufferedReader br=new BufferedReader(new InputStreamReader(socketIn));
创建EchoServer
例程1-2
import .*;
import .*;
public class EchoServer {
private int port=8000;
private ServerSocket serverSocket;
public EchoServer() throws IOException {
serverSocket = new ServerSocket(port);
("服务器启动");
}
public String echo(String msg) {
return "echo:" + msg;
}
private PrintWriter getWriter(Socket socket)throws IOException{
OutputStream socketOut = ();
创建EchoServer
return new PrintWriter(socketOut,true);
}
private BufferedReader getReader(Socket socket)throws IOException{
InputStream socketIn = ();
return new BufferedReader(new InputStreamReader(socketIn));
}
public void service() {
while (true) {
Socket soc