JAva socket送信ファイル

9887 ワード

クライアント:
package tt;



import java.io.DataOutputStream;

import java.io.File;

import java.io.FileInputStream;

import java.net.InetSocketAddress;

import java.net.Socket;



public class ClientTcpSend {



    public static void main(String[] args) {

        int length = 0;

        byte[] sendByte = null;

        Socket socket = null;

        DataOutputStream dout = null;

        FileInputStream fin = null;

        try {

          try {

            socket = new Socket();

            socket.connect(new InetSocketAddress("127.0.0.1", 33456),10 * 1000);

            dout = new DataOutputStream(socket.getOutputStream());

            File file = new File("E:\\TU\\DSCF0320.JPG");

            fin = new FileInputStream(file);

            sendByte = new byte[1024];

            dout.writeUTF(file.getName());

            while((length = fin.read(sendByte, 0, sendByte.length))>0){

                dout.write(sendByte,0,length);

                dout.flush();

            }

            } catch (Exception e) {



            } finally{

                if (dout != null)

                    dout.close();

                if (fin != null)

                    fin.close();

                if (socket != null)

                    socket.close();

        }

        } catch (Exception e) {

            e.printStackTrace();

        }

    }



}

 
サービス:
package test;



import java.io.DataInputStream;

import java.io.File;

import java.io.FileOutputStream;

import java.io.IOException;

import java.net.ServerSocket;

import java.net.Socket;



public class ServerTcpListener implements Runnable {



    @Override

    public void run() {



    }



    public static void main(String[] args) {

        try {

            final ServerSocket server = new ServerSocket(33456);

            Thread th = new Thread(new Runnable() {



                @Override

                public void run() {

                    while (true) {

                        try {

                           System.out.println("    。。。");

                           Socket socket = server.accept();

                           System.out.println("   ");

                           receiveFile(socket);

                        } catch (Exception e) {

                            e.printStackTrace();

                        }

                    }



                }



            });

            th.run();

        } catch (Exception ex) {

            ex.printStackTrace();

        }

    }



    public static void receiveFile(Socket socket) throws IOException {

        byte[] inputByte = null;

        int length = 0;

        DataInputStream din = null;

        FileOutputStream fout = null;

        try {

            din = new DataInputStream(socket.getInputStream());

            

            fout = new FileOutputStream(new File("E:\\"+din.readUTF()));

            inputByte = new byte[1024];

            System.out.println("      ...");

            while (true) {

                if (din != null) {

                    length = din.read(inputByte, 0, inputByte.length);

                }

                if (length == -1) {

                    break;

                }

                System.out.println(length);

                fout.write(inputByte, 0, length);

                fout.flush();

            }

            System.out.println("    ");

        } catch (Exception ex) {

            ex.printStackTrace();

        } finally {

            if (fout != null)

                fout.close();

            if (din != null)

                din.close();

            if (socket != null)

                socket.close();

        }

    }



}