利用TCP协议下一个简版的文件传输
发送文件客户端
1 package Package1; 2 3 import java.io.BufferedInputStream; 4 import java.io.BufferedOutputStream; 5 import java.io.File; 6 import java.io.FileInputStream; 7 import java.io.IOException; 8 import java.net.InetAddress; 9 import java.net.Socket; 10 import java.net.UnknownHostException; 11 12 public class 发送文件客户端 { 13 14 public static void main(String[] args) throws IOException, IOException { 15 try( 16 Socket s=new Socket(InetAddress.getByName("localhost"),9002); 17 BufferedInputStream bis=new BufferedInputStream(new FileInputStream(new File("C:\Users\Administrator\Desktop\4.19.txt"))); 18 BufferedOutputStream bos=new BufferedOutputStream(s.getOutputStream()); 19 20 ){ 21 byte[] bt=new byte[1024]; 22 int count=0; 23 while((count=bis.read(bt))!=-1) { 24 bos.write(bt,0,count); 25 } 26 bos.flush(); 27 }catch(Exception e) { 28 e.printStackTrace(); 29 } 30 31 } 32 33 }
服务器端:
1 package Package1; 2 3 import java.io.BufferedInputStream; 4 import java.io.BufferedOutputStream; 5 import java.io.File; 6 import java.io.FileOutputStream; 7 import java.io.IOException; 8 import java.net.ServerSocket; 9 import java.net.Socket; 10 11 public class 发送文件服务器端 { 12 13 public static void main(String[] args) throws Exception { 14 try( 15 ServerSocket ss=new ServerSocket(9002); 16 17 ){ 18 try( 19 Socket s=ss.accept(); 20 BufferedInputStream bis=new BufferedInputStream(s.getInputStream()); 21 BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream(new File("upload\2.txt"))); 22 23 ){ 24 byte[] bt=new byte[1024]; 25 int count=0; 26 while((count=bis.read())!=-1) { 27 bos.write(bt,0,count); 28 } 29 } 30 } 31 32 } 33 34 }