关于java:java网络编程TCPUDP笔记

10次阅读

共计 1289 个字符,预计需要花费 4 分钟才能阅读完成。

客户端
package com.ZXF.Net;
import java.io.*;
import java.net.InetAddress;
import java.net.Socket;
public class TcpClientDemo1 {

public static void main(String[] args) {
    Socket socket=null;
    OutputStream os=null;
    FileInputStream fis=null;
    InputStream is=null;
    ByteArrayOutputStream baos=null;
    try {
        //1. 创立一个 socket 连贯
        socket=new Socket(InetAddress.getByName("127.0.0.1"),9000);
        //2. 创立一个输入流
         os=socket.getOutputStream();
         //3. 读取文件
         fis=new FileInputStream(new File("林允儿.jpg"));
         //4. 写出文件
        byte[] buffer=new byte[1024];
        int len=-1;
        while ((len=fis.read(buffer))!=-1){os.write(buffer,0,len);
        }
        // 告诉服务端,我已完结
        socket.shutdownOutput();// 我曾经传输完了
        // 确认服务器接管实现,[WebMoney 下载](https://www.gendan5.com/wallet/WebMoney.html) 能力断开连接
        is=socket.getInputStream();
        // 因为服务发过来的确认信息是字符数组,所以创立数组管道流
        baos=new ByteArrayOutputStream();
        byte[] buffer2=new byte[2014];
        int len2=-1;
        while ((len2=is.read(buffer2))!=-1){baos.write(buffer2,0,len2);
        }
        System.out.println(baos.toString());
    } catch (IOException e) {e.printStackTrace();
    }
    finally {
        // 敞开资源,先开后关
        if (baos!=null){
            try {baos.close();
            } catch (IOException e) {e.printStackTrace();
            }
        }
        if (is!=null){
            try {is.close();
            } catch (IOException e) {e.printStackTrace();
            }
        }
        if (fis!=null){
            try {fis.close();
            } catch (IOException e) {e.printStackTrace();
            }
        }
        if (os!=null){
            try {fis.close();
            } catch (IOException e) {e.printStackTrace();
            }
        }
        if (socket!=null){
            try {fis.close();
            } catch (IOException e) {}}
    }
}

}

正文完
 0