• Java基础知识强化之网络编程笔记13:TCP之TCP协议上传图片并给出反馈


    1. TCP协议上传图片并给出反馈:

    (1)客户端:

     1 package cn.itcast_13;
     2 
     3 import java.io.BufferedInputStream;
     4 import java.io.BufferedOutputStream;
     5 import java.io.FileInputStream;
     6 import java.io.IOException;
     7 import java.io.InputStream;
     8 import java.net.Socket;
     9 
    10 public class UploadClient {
    11     public static void main(String[] args) throws IOException {
    12         // 创建客户端Socket对象
    13         Socket s = new Socket("192.168.12.92", 19191);
    14 
    15         // 封装图片文件
    16         BufferedInputStream bis = new BufferedInputStream(new FileInputStream(
    17                 "林青霞.jpg"));
    18         // 封装通道内的流
    19         BufferedOutputStream bos = new BufferedOutputStream(s.getOutputStream());
    20 
    21         byte[] bys = new byte[1024];
    22         int len = 0;
    23         while ((len = bis.read(bys)) != -1) {
    24             bos.write(bys, 0, len);
    25             bos.flush();
    26         }
    27         
    28         s.shutdownOutput();
    29 
    30         // 读取反馈
    31         InputStream is = s.getInputStream();
    32         byte[] bys2 = new byte[1024];
    33         int len2 = is.read(bys2);
    34         String client = new String(bys2, 0, len2);
    35         System.out.println(client);
    36 
    37         // 释放资源
    38         bis.close();
    39         s.close();
    40     }
    41 }

    (2)服务端:

     1 package cn.itcast_13;
     2 
     3 import java.io.BufferedInputStream;
     4 import java.io.BufferedOutputStream;
     5 import java.io.FileOutputStream;
     6 import java.io.IOException;
     7 import java.io.OutputStream;
     8 import java.net.ServerSocket;
     9 import java.net.Socket;
    10 
    11 public class UploadServer {
    12     public static void main(String[] args) throws IOException {
    13         // 创建服务器Socket对象
    14         ServerSocket ss = new ServerSocket(19191);
    15 
    16         // 监听客户端连接
    17         Socket s = ss.accept();
    18 
    19         // 封装通道内流
    20         BufferedInputStream bis = new BufferedInputStream(s.getInputStream());
    21         // 封装图片文件
    22         BufferedOutputStream bos = new BufferedOutputStream(
    23                 new FileOutputStream("mn.jpg"));
    24 
    25         byte[] bys = new byte[1024];
    26         int len = 0;
    27         while ((len = bis.read(bys)) != -1) {
    28             bos.write(bys, 0, len);
    29             bos.flush();
    30         }
    31 
    32         // 给一个反馈
    33         OutputStream os = s.getOutputStream();
    34         os.write("图片上传成功".getBytes());
    35 
    36         bos.close();
    37         s.close();
    38     }
    39 }
  • 相关阅读:
    关于注解
    关于泛型
    关于ER图和UML图之间的对比
    关于Eclipse中的egit的常规使用和模板
    关于Eclipse中的开源框架EMF(Eclipse Modeling Framework),第三部分
    关于Eclipse Modeling Framework进行建模,第二部分
    SQL Server 2005/2008备份数据库时提示“无法打开备份设备”
    试用版SQL Server 2008 R2 提示评估期已过
    该登录名来自不受信任的域,不能与 Windows 身份验证一起使用。
    SVN-如何删除 SVN 文件夹下面的小图标
  • 原文地址:https://www.cnblogs.com/hebao0514/p/4872587.html
Copyright © 2020-2023  润新知