java socket通信-传输文件图片--传输图片

时间:2022-05-22 16:37:32

ClientTcpSend.java   client发送类



package com.yjf.test;

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 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 server监听类



package com.yjf.test;

import java.net.*;

import java.io.*;



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) {



        }



    }

}



java socket通信-传输文件图片--传输图片java socket通信-传输文件图片--传输图片