美文网首页
基于tcp/ip协议的并发传输文件

基于tcp/ip协议的并发传输文件

作者: LX_代码制造坊 | 来源:发表于2020-02-02 21:34 被阅读0次

服务器端

服务器端开启基于tcp的网络传输通道,通过线程启动,解决多个客户端同时像服务器传输文件的并发问题。
代码例子如下:

public class TcpFileServer {
    public static void main(String[] args) {
        try {
            ServerSocket serverSocket = new ServerSocket(8888);
            while(true){
                new Thread(new Runnable() {
                    @Override
                    public void run() {
                        try {
                            Socket accept = serverSocket.accept();
                            InputStream inputStream = accept.getInputStream();
                            File file = new File("E:\\");
                            if (!file.exists()){
                                file.mkdir();
                            }
                            FileOutputStream fileOutputStream = new FileOutputStream(file+"copy_test.txt");
                            int len = 0;
                            byte bts[] = new byte[1024];
                            while((len=inputStream.read(bts))!=-1){
                                fileOutputStream.write(bts,0,len);
                            }
                            accept.getOutputStream().write("上传成功!!!".getBytes());
                            fileOutputStream.close();
                            accept.close();
                        }catch (Exception e){
                            System.out.println(e.toString());
                        }
                    }
                }).start();

            }

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

客户端

客户端负责通过tcp协议于服务器连通,并且向服务器传输数据。
代码例子如下:

public class TcpFileClient {
    public static void main(String[] args) {
        try {
            Socket socket = new Socket("127.0.0.1",8888);
            OutputStream outputStream = socket.getOutputStream();
            FileInputStream fileInputStream = new FileInputStream("E:\\test.txt");
            int len = 0;
            byte bs[] = new byte[1024];
            while ((len = fileInputStream.read(bs))!=-1){
                outputStream.write(bs);
            }
            socket.shutdownOutput();
            InputStream inputStream = socket.getInputStream();
            while ((len = inputStream.read(bs))!=-1){
                System.out.println(new String(bs,0,len));
            }
            fileInputStream.close();
            socket.close();


        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

相关文章

  • 基于tcp/ip协议的并发传输文件

    服务器端 服务器端开启基于tcp的网络传输通道,通过线程启动,解决多个客户端同时像服务器传输文件的并发问题。代码例...

  • 细节随笔

    1.tftp 协议端口号69,属于TCP/IP传输协议,基于UDP协议而实现,传输应答模式,使用场景:小文件传输 ...

  • Http和scoket通信的区别

    HTTP:超文本传输协议,首先它是一个协议,并且是基于TCP/IP协议基础之上的应用层协议。TCP/IP协议是传输...

  • http与sockete的区别

    HTTP:超文本传输协议,首先它是一个协议,并且是基于TCP/IP协议基础之上的应用层协议。TCP/IP协议是传输...

  • Http 和TCP

    1 http -->应用层协议tcp --->传输层协议 --ip --网络层协议http基于tcp协议; 2 ...

  • socket和http的区别

    HTTP协议:超文本传输协议,对应于应用层,HTTP协议是基于TCP连接的 tcp协议: 对应于传输层 ip协议:...

  • 06-网络类&加密

    网络七层协议(http,tcp/ip处于哪一层)? http属于应用层协议,基于tcp/ip tcp/ip属于传输...

  • TCP/UDP、IP 、Socket、HTTP笔记

    1.1 TCP/IP协议组 TCP/IP协议(传输控制协议)由网络层的IP协议和传输层的TCP协议组成 IP层负责...

  • TCP/IP、UDP、Http、Socket的区别

    传输层的TCP是基于网络层的IP协议的,而应用层的HTTP协议又是基于传输层的TCP协议的,而Socket本身不算...

  • 9、TCP和UDP

    一、TCP协议 1.概述 传输控制协议,是一种面向连接、可靠的、基于IP协议的传输层协议 TCP的传输对象是数据报...

网友评论

      本文标题:基于tcp/ip协议的并发传输文件

      本文链接:https://www.haomeiwen.com/subject/ofccxhtx.html