1. 程式人生 > >TCP通信(上傳文件)

TCP通信(上傳文件)

ack current filename 創建 AI random imp stream sock

package demo04;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;

public class TCPclient {
    public static void main(String[] args) throws IOException {
        //1.創建socket對象,連接服務器
        Socket s =new Socket("127.0.0.1", 8765);
        
//2.通過套接字獲取輸出流 OutputStream out =s.getOutputStream(); //3.獲取數據源 FileInputStream fis =new FileInputStream("D:\\test\\aaa.png"); //4.讀數據 int len =0; byte [] b =new byte [1024]; while((len =fis.read(b))!=-1){ //寫入目的地 out.write(b,0,len); } s.shutdownOutput();
//接受服務器回復 InputStream in =s.getInputStream(); len =in.read(b); System.out.println(new String(b ,0,len)); //釋放資源 fis.close(); s.close(); } }
package demo04;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import
java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.ServerSocket; import java.net.Socket; import java.util.Random; import org.xml.sax.InputSource; public class TCPserver{ public static void main(String[] args) throws IOException { //1.創建服務器套接字綁定接口 ServerSocket ser =new ServerSocket(8765); //2.接受套接字對象 Socket s =ser.accept(); //3.獲取輸入流 InputStream in =s.getInputStream(); //4.獲取文件夾,如果不存在就創建 File f =new File("f:\\aaa"); if(!f.exists()){ f.mkdirs(); } //5.創建文件輸出流 String filename ="oracle"+System.currentTimeMillis()+new Random().nextInt(99999)+".png"; FileOutputStream fos =new FileOutputStream(f+File.separator+filename); //6.寫入數據 byte [] b =new byte [1024]; int len =0; while((len =in.read(b))!=-1){ fos.write(b,0,len); } //服務器給客服端回復(上傳成功) OutputStream out=s.getOutputStream(); out.write("上傳成功".getBytes()); //釋放資源 fos.close(); s.close(); ser.close(); } }

TCP通信(上傳文件)