本节重难点在于TCP实现传输文件并得到回应
TCP实现传输文件并得到回应?
客户端:
public class TCP_Client {
public static void main(String[] args) throws IOException {
Socket socket=new Socket("localhost",12306);
System.out.println("客户端已启动");
BufferedInputStream bis=new BufferedInputStream(new FileInputStream("C:\\Users\\star\\Pictures\\Camera Roll\\bz\\default.jpeg"));
BufferedOutputStream bos=new BufferedOutputStream(socket.getOutputStream());
int len;
while ((len= bis.read())!=-1){
bos.write(len);
}
bos.flush();
socket.shutdownOutput();
System.out.println("已上传给服务端");
BufferedInputStream bis2=new BufferedInputStream(socket.getInputStream());
byte[] bytes=new byte[15];
bis2.read(bytes);
String str=new String(bytes,0,bytes.length);
bis2.close();
System.out.println("已接受到服务器端发送的信息:"+str);
socket.close();
System.out.println("通讯完毕");
}
}
服务端:
public class TCP_Server {
public static void main(String[] args) throws IOException {
ServerSocket serverSocket=new ServerSocket(12306);
Socket socket = serverSocket.accept();
BufferedInputStream bis=new BufferedInputStream(socket.getInputStream());
BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream("C:\\Users\\star\\Pictures\\Camera Roll\\bz\\new.jpeg"));
int len;
while ((len=bis.read())!=-1){
bos.write(len);
}
bos.flush();
BufferedOutputStream bos2=new BufferedOutputStream(socket.getOutputStream());
bos2.write("已上传成功".getBytes());
bos2.close();
bis.close();
bos.close();
socket.close();
serverSocket.close();
System.out.println("通讯结束");
}
}
运行结果: