美文网首页
Java 网络编程基础二

Java 网络编程基础二

作者: 码农UP2U | 来源:发表于2020-03-20 23:51 被阅读0次

今天删了一个玩了两三年的手游,这个手游是圣斗士星矢重生,属于是怀旧的游戏吧,要说好玩呢,可能对于我这种小时候喜欢看这部动画片的来说还算可以。当然,对于那些喜欢吃鸡之类的,可能就觉得这种游戏无聊至极吧。不管怎样,这个游戏好多年了,也不想玩了。

今天的文章是一个图片上传代码的例子,主要使用了 FileInputStream 和 FileOutputStream 两个类,当然了 ServerSocket 和 Socket 这两个类是不会少的。

服务端代码

首先来看看服务端的代码,代码如下:

    public static void main(String[] args) throws IOException {
        // 创建服务端对象,开放端口
        ServerSocket serverSocket = new ServerSocket(10086);
        // 创建服务端的 socket
        Socket server = serverSocket.accept();
        // 获取输入流对象
        InputStream inputStream = server.getInputStream();
        // 创建文件输出对象
        FileOutputStream fileOutputStream = new FileOutputStream("321.jpg");

        int temp = 0;
        while ((temp  = inputStream.read()) != -1) {
            fileOutputStream.write(temp);
        }

        server.shutdownInput();

        // 上传图片结束之后给予客户端响应
        OutputStream outputStream = server.getOutputStream();
        outputStream.write("上传成功".getBytes());
        server.shutdownOutput();

        // 关闭操作
        outputStream.close();
        fileOutputStream.close();
        inputStream.close();
        server.close();
        serverSocket.close();
    }

代码中的 InputStream 用来接收客户端发来的文件数据,FileOutputStream 用来将接收的数据写入到文件当中。

客户端代码

客户端代码和服务端代码是类似的,代码如下:

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

        // 创建图片的输入流对象
        FileInputStream fileInputStream = new FileInputStream("123.jpg");
        // 创建 Socket
        Socket client = new Socket("localhost", 10086);
        // 获取输出流对象
        OutputStream outputStream = client.getOutputStream();
        int temp = 0;
        while ((temp = fileInputStream.read()) != -1) {
            outputStream.write(temp);
        }

        client.shutdownOutput();

        // 接受服务端的响应
        InputStream inputStream = client.getInputStream();
        byte[] buf = new byte[1024];
        int length = inputStream.read(buf);
        System.out.println(new String(buf, 0, length));
        client.shutdownInput();
        // 关闭操作
        inputStream.close();
        outputStream.close();
        fileInputStream.close();
        client.close();
    }

客户端的代码,通过 FileInputStream 来读取图片数据,然后再通过 OutputStream 用来发送读取的图片数据到服务端。

这两段代码基本就是 io 流的使用。



微信中搜索 “码农UP2U” 关注我的公众号吧!!!

相关文章

网友评论

      本文标题:Java 网络编程基础二

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