Java Socket圖片文件傳輸

ClientTcpSend.java 客戶端發送類

public class ClientTcpSend {
    public static String clientip = "127.0.0.1";
    public static int port = 33456;

    public static void main(String[] args) {
        int length = 0;
        byte[] sendBytes = null;
        Socket socket = null;
        DataOutputStream dos = null;
        FileInputStream fis = null;
        try {
            try {
                socket = new Socket();
                socket.connect(new InetSocketAddress(clientip, port),30 * 1000);
                dos = new DataOutputStream(socket.getOutputStream());
                File file = new File("F:aa.xml");
                fis = new FileInputStream(file);
                sendBytes = new byte[1024*4];
                while ((length = fis.read(sendBytes, 0, sendBytes.length)) > 0) {
                    dos.write(sendBytes, 0, length);
                    dos.flush();
                }
            } finally {
                if (dos != null)
                    dos.close();
                if (fis != null)
                    fis.close();
                if (socket != null)
                    socket.close();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

ServerTcpListener.java 服務器監聽類

public class ServerTcpListener implements Runnable {
    public static void main(String[] args) {
        try {
            final ServerSocket server = new ServerSocket(ClientTcpSend.port);
            Thread th = new Thread(new Runnable() {
                public void run() {
                    while (true) {
                        try {
                            System.out.println("開始監聽...");
                            Socket socket = server.accept();
                            System.out.println("有鏈接");
                            receiveFile(socket);
                        } catch (Exception e) {
                        }
                    }
                }
   
            });

            th.run(); //啓動線程運行
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public void run() {
    }

    public static void receiveFile(Socket socket) {
   
        byte[] inputByte = null;
        int length = 0;
        DataInputStream dis = null;
        FileOutputStream fos = null;
        try {
            try {
   
                dis = new DataInputStream(socket.getInputStream());
                fos = new FileOutputStream(new File("E:aa.xml"));
                inputByte = new byte[1024*4];
                System.out.println("開始接收數據...");
                while ((length = dis.read(inputByte, 0, inputByte.length)) > 0) {
                    fos.write(inputByte, 0, length);
                    fos.flush();
                }
                System.out.println("完成接收");
            } finally {
                if (fos != null)
                    fos.close();
                if (dis != null)
                    dis.close();
                if (socket != null)
                    socket.close();
            }
        } catch (Exception e) {
   
        }
    }

}

原文:http://www.androidstar.cn/java-socket圖片文件傳輸/

發佈了0 篇原創文章 · 獲贊 17 · 訪問量 35萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章