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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

package com.abblcg;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;

public class RegServer {

        /**
         * @param args
         * @throws IOException
         */
        public static void main(String[] args) throws IOException {
                ServerSocket ss = new ServerSocket(10000);
                Socket s = ss.accept();       
                       
                String ip = s.getInetAddress().getHostAddress();
                System.out.println("ip:" + ip);
               
                InputStream is = s.getInputStream();
                byte[] bt = new byte[1024];
                int len = is.read(bt);
                System.out.println(new String(bt,0,len));
               
                /*BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
                String line = null;
                while ((line = br.readLine())!=null) {
                        System.out.print(line);
                        System.out.println();
                }*/

                PrintWriter pw = new PrintWriter(s.getOutputStream(),true);
                pw.println("<font size=7 color=blue>注册成功</font>");//为什么不能用write?
               
                ss.close();
                s.close();
                //br.close();
                pw.close();
        }
}

2 个回复

正序浏览
楼上说的对,使用write需要再加一行newLine
因为在这一句中 PrintWriter pw = new PrintWriter(s.getOutputStream(),true); 设置true使得程序可以自动刷新缓冲区,并通过换行来判断是否刷新!
回复 使用道具 举报
使用write的话还需要自己再添加换行命令newline,
打印流的话直接 用println就附带了换行功能
详细的见毕老师视频day20中的PrintWriter那一节,
我最近也在学习这方面的内容,希望回答能对你有所帮助
大家共勉。

评分

参与人数 1技术分 +1 收起 理由
韦念欣 + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马