BufferedReader brkeyb = null;
ServerSocket ss = null;
Socket sock = null;
OutputStream os = null;
try {
ss = new ServerSocket(9999);
System.out.println("服务器启动");
sock = ss.accept();
os = sock.getOutputStream(); PrintStream ps = new PrintStream(os);
brkeyb = new BufferedReader(new InputStreamReader(System.in)); while (flag) {
//从键盘读取信息发往客户端
String sk = brkeyb.readLine();
ps.println("Server: " + sk); //@1@ 不加ps.flush()也能把消息发往客户端
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
try {
br.close();
sock.close();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} }提问:@1@ 处我不加ps.flush()也能把消息发往客户端,但是public PrintStream(OutputStream os)创建的是不带自动刷新的流,怎么能自动刷新呢?
解决方案 »
- Jmf 播放视频格式的问题,急!!!
- 急!急!急! 小弟遇见一个难题。请高手帮忙。是把数字换文字输入
- 初学者求解,关于矩形编程提,请多指点!
- 如何实现做一些代码发到网站上后,无需修改原网站内容,即可实现把所有网页上某个词变成链接
- 链表问题!!
- 急!急!急!高分求助!JAVA运行时错误Exception in thread "main" java.lang.NoClassDefFoundError: Alpha
- 各位老大速看,十万火急。。。100分。。。在线。。。
- 使用Java可以开发常驻内存的程序吗?
- 关闭窗口的这两种方法有什么区别吗?
- 最近机器在编译时慢的要死,不知该如何办才好。
- 用java3D做一个模拟太阳地球月亮运动的程序
- socket传递字符串
如果你再增加一层BufferedOutputStream—— new PrintStream(new BufferedOutputStream(os));则会出现不同的结果,但是要注意BufferedOutputStream仍然会在Buffer满的时候发送数据的,只是时间不确定罢了。
autoFlush是保证调用了print方法之后一定会flush而已。
http://www.khgl.cn/html/78/n-522578.html 看看这个
得出结果是:只有加了BufferedOutputStream才能谈刷不刷新的问题
当写入回车换行时,自动flush