黑马程序员技术交流社区
标题:
这题怎么不对呢,求大牛看看
[打印本页]
作者:
恰巧
时间:
2016-4-23 21:44
标题:
这题怎么不对呢,求大牛看看
package com.heima.exam;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
/*
* 8、使用TCP协议写一个可以上传文件的服务器和客户端。
* */
public class Test8Server {
public static void main(String[] args) throws Exception {
//创建服务器服务
ServerSocket ss = new ServerSocket(12345);
Socket socket =ss.accept();//接受客户端请求
//接收传输来的文件,写入本地
InputStream ips =socket.getInputStream();
OutputStream ops = new FileOutputStream("c.txt");
//数组缓冲区
byte[] arr = new byte[1024];
int len = 0;
while((len = ips.read(arr)) != -1 ){
ops.write(arr,0,len);
}
//给客户端发送成功的信息
PrintWriter pw = new PrintWriter(socket.getOutputStream());
pw.write("成功");
//关流
ss.close();
socket.close();
ops.close();
}
}
--------------------------------------------------------------------------------------------------------------
package com.heima.exam;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.Socket;
/*
* 8、使用TCP协议写一个可以上传文件的服务器和客户端。
* */
public class Test8Client {
public static void main(String[] args) throws Exception {
//创建客户端socket
Socket socket = new Socket("127.0.0.1", 12345);
//读取本地本件到socket中
OutputStream ops = socket.getOutputStream();
InputStream ips = new FileInputStream("d.txt");
//创建大小为1024字节的数组缓冲区
byte[] arr = new byte[1024];
int len = 0;
//写出去
while((len = ips.read(arr))!=-1){
ops.write(arr, 0, len);
}
//传输完毕
socket.shutdownOutput();
//用于接收服务器的消息并打印到控制台
BufferedReader br = new BufferedReader
(new InputStreamReader(socket.getInputStream()));
System.out.println(br.readLine());
//关流
socket.close();
ips.close();
}
}
这代码运行的时候服务器发回来的“成功”字符串为什么不在控制台显示呢?显示null
作者:
恰巧
时间:
2016-4-23 21:45
上半部分是服务器,下半部分是客户端
作者:
恰巧
时间:
2016-4-24 18:12
{:2_30:}{:2_30:}
作者:
wx_Zdt18Ww6
时间:
2016-4-24 21:48
把pw流关了试试
作者:
杨伟乔
时间:
2016-5-9 18:32
这个是刷新的问 题吧 需要刷新流 这样才可以把数据写入进去 刷新客户端的流试试 在告诉服务器发送完毕上面刷新
作者:
cc19930915
时间:
2016-5-9 22:59
pw.flush()
作者:
一帘幽梦——
时间:
2016-5-10 21:07
同学,你进JAVA班还是Android班啊?怎么还考TCP协议?
作者:
Sj改变
时间:
2016-5-17 18:52
没有刷新缓冲区 数据在缓存区没进入流中
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2