package com.baidu.tcp;
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
/**
* 服务端
*/
public class ServerDemo {
public static void main(String[] args) {
ServerSocket ss=null;
BufferedWriter bw=null;
OutputStream fs=null;
try {
//1.创建服务端套接字
ss=new ServerSocket(9999);
//2.监听客服端
Socket s=ss.accept();
//3.获取客户端通道的输入流
InputStream is=s.getInputStream();
InputStreamReader isr=new InputStreamReader(is);
BufferedReader br=new BufferedReader(isr);
//4.创建字符输出缓冲流,关联存储文件地
bw=new BufferedWriter(new FileWriter("copy.txt"));
//5.从客户端的通道输入流读取文件,写出到硬盘
String line=null;
while((line=br.readLine())!=null){
bw.write(line);
bw.newLine();
bw.flush();
}
//数据接收完毕,给客户端一个反馈信息
fs=s.getOutputStream();
fs.write("数据上传成功!".getBytes());
} catch (IOException e) {
e.printStackTrace();
}finally{
try {
fs.close();
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
//===============================================
package com.baidu.tcp;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.Socket;
/**
* 客户端
*/
public class ClientDemo{
public static void main(String[] args) {
Socket s=null;
BufferedReader br=null;
InputStream is=null;
try {
//1.创建客户端套接字
s=new Socket("127.0.0.1",9999);
//2.1获取通道输出流
OutputStream os=s.getOutputStream();
//2.2输入缓冲流关联文件
br=new BufferedReader(new FileReader("C:\\Users\\mingming\\Desktop\\复习\\WEB01.txt"));
//2.3把通道输出流转化成字符缓冲流
OutputStreamWriter ow=new OutputStreamWriter(os);
BufferedWriter bw=new BufferedWriter(ow);
//2.4把文件写到通道流
String line=null;
while((line=br.readLine())!=null){
bw.write(line);
bw.newLine();
bw.flush();
}
s.shutdownOutput();
//3.数据上传完毕,接收服务端的反馈
//3.1获取客户端通道的输入流
is=s.getInputStream();
byte[] buf=new byte[1024];
int len=0;
while((len=is.read(buf))!=-1){
System.out.println(new String(buf,0,len));
}
} catch (Exception e) {
e.printStackTrace();
}finally{
try {
s.close();
br.close();
is.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}