1. 程式人生 > >java TCP通信 socket 套接字 用圖片上傳轟炸服務器

java TCP通信 socket 套接字 用圖片上傳轟炸服務器

ack 服務器 dclient write tcp public AI 套接字 dcl

客戶端

package com.swift.jinji;

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

/*項目需求:使用socket編寫一個Java程序,要求:實現客戶端上傳文件到服務端,
即客戶端讀取本地文本文件,將文件發送至服務端,服務端將接收到的內容存放到文本文件中。*/

public class UploadClient {

    static
int i = 1024; public static void main(String[] args) throws IOException, IOException { while (true) { if (i < 65535) { System.out.println(i); Socket s = new Socket("192.168.122.35", 20000); FileInputStream fis = new FileInputStream("d:/abc/0.jpg"); OutputStream out
= s.getOutputStream(); byte[] buf = new byte[1024]; int len; while ((len = fis.read(buf)) != -1) { // 這個時候下面的套接字流write寫沒有寫-1,因為到-1就停了 out.write(buf, 0, len); } s.shutdownOutput(); InputStream in
= s.getInputStream(); len = in.read(buf); System.out.println(new String(buf, 0, len)); } } } }

服務器端需開啟上傳接收客戶端socket才行

package com.swift.jinji;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class UploadServer {

    public static void main(String[] args) throws IOException {

        ServerSocket serverSocket = new ServerSocket(20000);
        while (true) {
            System.out.println("等待客戶端連接");
            Socket s = serverSocket.accept();
            System.out.println("有客戶端連接成功 " + s);
            byte[] buf = new byte[1024];
            int len;
            File destDir = new File("d:/upload");
            if (!destDir.exists()) {
                destDir.mkdirs();
            }
            FileOutputStream fos = new FileOutputStream(new File(destDir, System.currentTimeMillis() + "_0.jpg"));
            InputStream in = s.getInputStream();
            while ((len = in.read(buf)) != -1) {
                fos.write(buf, 0, len);
            }
            System.out.println("111111111111111");
            OutputStream out = s.getOutputStream();
            out.write("上傳成功".getBytes());
            s.close();
        }
    }

}

效果就是,一瞬間會有數萬張圖片奔向服務器.

java TCP通信 socket 套接字 用圖片上傳轟炸服務器