快速业务通道

Java初学者备忘录 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-22
ntWriter(outToServerStream); file&://把/Socket的OutputStream包装进PrintWriter 以使我们能够发送文件请求到服务器    } catch (UnknownHostException e) {      System.out.println("Error setting up socket connection: unknown host at " + hostIp + ":" + hostPort); file&://对/Socket对象创建错误的异常处理    } catch (IOException e) {      System.out.println("Error setting up socket connection: " + e); file&://对/IO错误的异常处理    } }

Java初学者备忘录(4)

时间:2010-12-15

2.读取

public String getFile(String fileNameToGet) {    StringBuffer fileLines = new StringBuffer();//StringBuffer对象也是String对象,但是比它更灵活,这里是用来存放读取内容的    try {      socketWriter.println(fileNameToGet);      socketWriter.flush();//文件存放地址输出到socketWriter中,然后清空缓冲区,让这个地址送到服务器中去      String line = null;      while ((line = socketReader.readLine()) != null)        fileLines.append(line + "\n"); file&://既/然已经发送到服务器去了,那我们都要等待响应,这里的程序就是等待服务器把我们所需要的文件内容传过来    } catch (IOException e) {      System.out.println("Error reading from file&: " + fileNameToGet);    }    return fileLines.toString();//别忘了把buffer中的内容转成String再返回 }

3.断开

public void tearDownConnection() {    try {      socketWriter.close();      socketReader.close();    } catch (IOException e) {      System.out.println("Error tearing down socket connection: " + e);    } }

tearDownConnection() 方法只别关闭我们在 Socket 的 InputStream 和 OutputStream 上创建的 BufferedReader 和 PrintWriter。这样做会关闭我们从 Socket 获取的底层流,所以我们必须捕捉可能的 IOException

好,现在可以总结一下客户机程序的创建步骤了

1.用要连接的机器的IP端口号实例化Socket(如有问题则抛出 Exception)。

2.获取 Socket 上的流以进行读写.

3.把流包装进 BufferedReader/PrintWriter 的实例.

4.对 Socket 进行读写.具体说来,就是在Writer上传送文件地址信息给服务器,在Reader上读取服务器传来的文件信息

Java初学者备忘录(5)

时间:2010-12-15

5.关闭打开的流。

下面是RemoteFileClient 的代码清单

import java.io.*; import java.net.*; public class RemoteFileClient {    protected BufferedReader socketReader;    protected PrintWriter socketWriter;    protected String hostIp;    protected int hostPort;    public RemoteFileClient(String aHostIp, int aHostPort) {      hostIp = aHostIp;      hostPort = aHostPort;    }    public String getFile(String fileNameToGet) {      StringBuffer fileLines = new StringBuffer();      try {        socketWriter.println(fileNameToGet);        socketWriter.flush();        String line = null;        while ((line = socketReader.readLine()) != null)          fileLines.append(line + "\n");      } catch (IOException e) {        System.out.println("Error reading from file&: " + fileNameToGet);      }  

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号