您的位置:首页 > 其它

多客户端实现文件从服务器端下载文件--并行下载

2016-09-04 18:03 411 查看
//客户端

package 并行下载;

import java.net.*;  

import java.io.*;  

import java.io.*;

import java.net.*;

class Client

{    

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

    {

        System.out.println("客户端端启动....");

        Socket socket = new Socket(InetAddress.getByName("10.0.185.126"),11111);

        //写到本地图片的字节输出流

        FileOutputStream fos = new FileOutputStream("news.jpg");

        OutputStream out = socket.getOutputStream();

        InputStream in = socket.getInputStream();

        byte[] arr = new byte[1024];

        int len = 0;

        while((len = in.read(arr))!=-1)

        {

            fos.write(arr,0,len);

        }

        out.write("下载成功".getBytes());

        

        fos.close();

        socket.close();

    }

}

//服务器端

package 并行下载;

import java.io.BufferedReader;

import java.io.FileReader;

import java.io.InputStreamReader;

import java.io.PrintWriter;

import java.net.ServerSocket;

import java.net.Socket;

import java.net.*;

import java.io.*;

class Server implements Runnable

{

    private Socket socket;

    public Server(Socket socket)

    {

        this.socket = socket;

    }

    public void run()

    {

        try{

            String ip = socket.getInetAddress().getHostAddress();

            System.out.println(ip+"连接到服务器端");

            FileInputStream fis = new FileInputStream("1.jpg");

            InputStream  in = socket.getInputStream();

            OutputStream out = socket.getOutputStream();

            byte[] arr = new byte[1024];

            int len = 0;

            //循环读取本地图片,发送给客户端

            while((len = fis.read(arr))!=-1)

            {

                //给客户端发送数据的字节输出流

                out.write(arr,0,len);

            }

            socket.shutdownOutput();

            fis.close();

        //读取"上传成功"的字节读取流

        int num = in.read(arr);

        System.out.println(new String(arr,0,num));

        }

        catch(Exception e)

        {

            e.printStackTrace();

        }

    }

}

//主函数

package 并行下载;

import java.net.*;

import java.io.*;

class TestServer

{

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

    {

        ServerSocket server = new ServerSocket(11111);

        while(true)

        {

            Socket socket = server.accept();

            new Thread(new Server(socket)).start();

        }

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  并行下载
相关文章推荐