黑马程序员技术交流社区
标题:
网络编程上传文件失败
[打印本页]
作者:
lyssenlove
时间:
2014-7-8 18:40
标题:
网络编程上传文件失败
没有把文件的内容传进去。。
tcpSend是客户端,tcpAccept是服务器端!!
public void tcpSend() {
System.out.println("发送端开始工作。。");
try {
//获取本机的ip地址
InetAddress ip = InetAddress.getLocalHost();
// 获取tcpsocket服务,使用Socket对象
Socket s = new Socket(ip.getHostAddress(), 10005);
//拿到客户端socket的输出流
OutputStream os = s.getOutputStream();
BufferedWriter buffWriter = new BufferedWriter(new OutputStreamWriter(os));
//读取一个文件
BufferedReader buffReader = new BufferedReader(new InputStreamReader(
new FileInputStream("E:\\test.txt")));
String line = null;
while((line = buffReader.readLine())!=null) {
// System.out.println(line);
buffWriter.write(line);
}
s.shutdownOutput();
//拿到客户端socket的输入流,以便接收服务器端发送的数据
InputStream is = s.getInputStream();
byte[] buf = new byte[1024];
is.read(buf);
String test = new String(buf, 0, buf.length);
//输出服务端发送过来的数据
System.out.println(test);
is.close();
os.close();
s.close();
} catch (SocketException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
// 模拟服务器端接受数据
public void tcpAccept() {
try {
//建立服务器端的serversocket对象
ServerSocket ss = new ServerSocket(10005);
//获取客户端对象
Socket serverSocket = ss.accept();
System.out.println("客户端ip:"+serverSocket.getInetAddress().getHostAddress());
BufferedWriter buffWriter = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream("E:\\test_server.txt")));
//拿到客户端的发送过来的数据
InputStream in = serverSocket.getInputStream();
BufferedReader buffReader = new BufferedReader(new InputStreamReader(in));
String line = null;
while((line = buffReader.readLine())!=null) {
/*System.out.println("服务器端数据:"+line);*/
buffWriter.write(line);
}
//System.out.println(customStr);
//服务器端的输出流
OutputStream out = serverSocket.getOutputStream();
String str = "服务器已经接收上传文件!!";
out.write(str.getBytes());
in.close();
out.close();
serverSocket.close();
} catch (SocketException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2