zoukankan      html  css  js  c++  java
  • 使用Java编写TCP协议发送和接收数据接口

    TCP协议接收数据的步骤:

    A:创建接收数据的Socket对象

      创建对象的时候要指定端口

    B:监听客户端连接

        等待客户端连接

    C:获取Socket对象的输入流(字节流)

    D:读数据,并显示在控制台

    E:释放资源

    服务器:

    public class FileServerDemo {

        public static void main(String[] args) throws IOException {
            //创建服务器对象
            ServerSocket ss = new ServerSocket(8080);
            //监听客户端连接
            Socket s = ss.accept();
            //包装通道内的输入流
            BufferedInputStream bis = new BufferedInputStream(
                    s.getInputStream());
            //把数据写入文件
            BufferedOutputStream bos = new BufferedOutputStream(
                    new FileOutputStream("C:\Users\MA\Desktop\IOtest\copy.jpg"));
            byte[] bys = new byte[1024];
            int len = 0;
            while((len = bis.read(bys))!=-1){
                bos.write(bys,0,len);
            }
            //把通道内的输出流包装
            BufferedWriter write = new BufferedWriter(new OutputStreamWriter(
                    s.getOutputStream()));
            write.write("文件上传成功");
            write.newLine();
            write.flush();
            //释放资源
            bos.close();
            s.close();
            ss.close();
        }
    }

    TCP协议发送数据的步骤:

    A:创建发送数据的Socket对象

      创建对象的时候要指定主机和端口

    B:获取Socket对象的输出流(字节流)

    C:写数据

    D:释放资源

    客户端:

    public class FileClientDemo {

        public static void main(String[] args) throws IOException {
            //创建客户端对象
            Socket s = new Socket("172.24.60.182",8080);
            //读取文件的数据
            BufferedInputStream bis = new BufferedInputStream(new FileInputStream("C:\Users\MA\Desktop\电路指导书\QQ图片20180627212519.jpg"));
            //把通道内的输出流包装
            BufferedOutputStream bos = new BufferedOutputStream(s.getOutputStream());
            byte[] bys = new byte[1024];
            int len = 0;
            while((len=bis.read(bys))!=-1){
                bos.write(bys,0,len);
            }
            //给服务器一个反馈
            s.shutdownOutput();//禁用输出流
            //获取服务器的反馈信息
            BufferedReader reader = new BufferedReader(new InputStreamReader(s.getInputStream()));
            String data = reader.readLine();
            System.out.println("client:"+data);
            bis.close();
            s.close();
        }
    }

    转载于:https://www.cnblogs.com/mxj961116/p/9348732.html

  • 相关阅读:
    一些javascript的常用方法(转载)
    php在线处理视频 (在线视频转码,取得视频信息)
    在JS中最常看到切最容易迷惑的语法(转)
    jquery ui resizable bug
    设计技巧
    超大记录量数据库设计
    相似度分析(转)
    linux vi 替换命令
    今天发现一个关于CSS的东东,解决了我很多疑问
    Http Handler 介绍
  • 原文地址:https://www.cnblogs.com/4AMLJW/p/tcp20200720163622.html
Copyright © 2011-2022 走看看