你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:杂志经典 / 跟高手学编程
Java网络编程入门(十六)
 

Socket类提供了getInputStream()方法和getOutputStream()方法,分别返回输入流InputStream对象和输出流OutputStream对象。程序只需向输出流写数据,就能向对方发送数据;只需从输入流读数据,就能接收来自对方的数据。图18演示了服务器与客户利用ServerSocketSocket来通信的过程。


18  服务器与客户利用ServerSocketSocket来通信

   与普通I/O流一样,Socket的输入流和输出流也可以用过滤流来装饰。在以下代码中,先获得输出流,然后用PrintWriter装饰它,PrintWriterprintln()方法能够写一行数据;以下代码接着获得输入流,然后用BufferedReader装饰它,BufferedReaderreadLine()方法能够读入一行数据:

OutputStream socketOut = socket.getOutputStream();

//参数true表示每写一行,PrintWriter缓存就自动溢出,把数据写到目的地

PrintWriter pw=PrintWriter(socketOut,true); 

InputStream socketIn = socket.getInputStream();

BufferedReader br=new BufferedReader(new InputStreamReader(socketIn));

以下是EchoServer的核心代码。

import java.io.*;

import java.net.*;

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();

    return new PrintWriter(socketOut,true);

  }

  private BufferedReader getReader(Socket socket)throws IOException{

    InputStream socketIn = socket.getInputStream();

    return new BufferedReader(new InputStreamReader(socketIn));

  }

 

  推荐精品文章

·2024年12月目录 
·2024年11月目录 
·2024年10月目录 
·2024年9月目录 
·2024年8月目录 
·2024年7月目录 
·2024年6月目录 
·2024年5月目录 
·2024年4月目录 
·2024年3月目录 
·2024年2月目录 
·2024年1月目录
·2023年12月目录
·2023年11月目录

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089