美文网首页
TCP上传图片UploadPicClient

TCP上传图片UploadPicClient

作者: 勇者与王者 | 来源:发表于2019-10-07 01:23 被阅读0次
    package Day32_Net;
    
    import java.io.*;
    import java.net.Socket;
    
    /**
     * @Author quzheng
     * @Date 2019/10/6 22:35
     * @Version 1.0
     *
     * 实现图片上传服务器功能:
     *  读取本地图片文件,通过socket对象获取输出流上传至服务器
     */
    public class UploadPicClient {
        public static void main(String[] args) throws IOException {
            Socket socket = new Socket("127.0.0.1",9999);
    
            //客户端的输出流 也就是指上传到服务器的流
            OutputStream out = socket.getOutputStream();
    
            String file = "C:\\Users\\QZ\\Desktop\\Java\\File\\WatchDogs2.png";
    
            FileInputStream fis = new FileInputStream(file);
    
            byte [] bytes = new byte[1024];
            //定义整数表示读取的字节长度
            int len = 0;
            //依次读取 1024个字节,并通过socket输出流 往服务器端写字节
            while ( (len=fis.read(bytes))!= -1 ){
                // 因为最后读取到的不一定有1024个字节长度,所以需要读取到多少 len长度 就写多少长度的自己
                out.write(bytes,0,len);
            }
    
            //这里因为输入流未关闭,导致服务器一直在等待输入流,卡死在这一步,所以尝试关闭输入流看下
    //        fis.close();      没用
            // 调用socket的 shutdownOutput()方法 发送终止序列
            socket.shutdownOutput();
    
            //获取socket对象的输入流 即 获取到 服务器端的输出
            InputStream in = socket.getInputStream();
            len = in.read(bytes);
            //直接打印服务器端的消息
            System.out.println(new String(bytes,0,len) ); // getBytes()方法获取到的是内存地址?
    
            fis.close();
            socket.close();
    
        }
    }
    
    

    相关文章

      网友评论

          本文标题:TCP上传图片UploadPicClient

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