A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 木木赤赤 中级黑马   /  2013-12-27 08:07  /  923 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 木木赤赤 于 2013-12-27 12:15 编辑

public class TextServer {
    public static void main(String[] args) throws Exception{
        ServerSocket ss = new ServerSocket(10004);
        Socket s = ss.accept();
        
        String ip = s.getInetAddress().getHostAddress();
        System.out.println(ip + " is connected");
        
        BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
        PrintWriter out = new PrintWriter("sss.txt");
        
        String line = null;
        while ((line = br.readLine())!=null) {
            out.println(line);
        }
        
        PrintWriter pw = new PrintWriter(s.getOutputStream(),true);
        pw.println("上传成功!");        
        out.close();
        s.close();
        ss.close();
    }
}
服务端中被标识的部分为什么是S.getInputStream(),而不是S.getOutputStream()。
它不是应该从外面往里面写数据吗,为什么不是接受S对象getOutputStream()。

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

2 个回复

倒序浏览
getInputStream 与getOutputStream 都是相对于本类来说的,接收数据就是inputStream写出数据就是outputStream
{:soso_e113:}
回复 使用道具 举报
BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
你是说的这句吧?这句的意思是读取客户端发送过来的数据,相对于服务端也就是输入了,所以就是getInputStream了。
下面的一行PrintWriter out = new PrintWriter("sss.txt");就是将读到的数据写入到本地文件sss.txt中了。
而再下面的一句: PrintWriter pw = new PrintWriter(s.getOutputStream(),true); 这句才是往客户端写数据,当所有的客户端发送过来的数据接收完之后,就往客户端写入数据"上传成功!",告诉客户端上传成功了,往外写也就是getOutputSt方法了。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马