Java Socket图片文件传输

来源:互联网 发布:shell中执行linux命令 编辑:程序博客网 时间:2024/05/17 00:16

简单示例:


1:发送端

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:\\img.jpg");                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();        }    }}


2:接收端

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:\\img22.jpg"));                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) {        }    }}


1 0
原创粉丝点击