TCP通信 -- 文件传输

www

客户端:

java 复制代码
package com.itheima.b03TCPTest3;

import java.io.*;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;

public class Client {
    public static void main(String[] args) throws IOException {
        System.out.println("===客户端启动===");
        //1、创建socket通信管道 请求连接
        Socket socket = new Socket(InetAddress.getLocalHost(),10001);
        //2、本地IO流将数据输入到内存 使用缓冲流 快
        FileInputStream fis = new FileInputStream("/Users/wangjia/Desktop/CS/计算机网络/clientdir/面试算法.png");
        BufferedInputStream bfr = new BufferedInputStream(fis);
        //3、网络IO流将数据从内存传到网络服务端 字节流输出 所以要通过字节数组按照字节大小逐一传输
        OutputStream os = socket.getOutputStream();
        BufferedOutputStream bos = new BufferedOutputStream(os);
        int len;
        byte[] bytes = new byte[1024];
        while((len = bfr.read(bytes)) != -1){
            bos.write(bytes,0,len);
        }
        //4、客户端通知服务器数据传输完毕 通过socket通信管道方法
        socket.shutdownOutput();

        //5、获取服务端反馈
        BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
        String msg = br.readLine();
        System.out.println("服务端反馈信息:" + msg);

        //6、释放资源
        socket.close(); //socket关闭表示 撤销连接

服务端

java 复制代码
package com.itheima.b03TCPTest3;

import java.io.*;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;

public class Client {
    public static void main(String[] args) throws IOException {
        System.out.println("===客户端启动===");
        //1、创建socket通信管道 请求连接
        Socket socket = new Socket(InetAddress.getLocalHost(),10001);
        //2、本地IO流将数据输入到内存 使用缓冲流 快
        FileInputStream fis = new FileInputStream("/Users/wangjia/Desktop/CS/计算机网络/clientdir/面试算法.png");
        BufferedInputStream bfr = new BufferedInputStream(fis);
        //3、网络IO流将数据从内存传到网络服务端 字节流输出 所以要通过字节数组按照字节大小逐一传输
        OutputStream os = socket.getOutputStream();
        BufferedOutputStream bos = new BufferedOutputStream(os);
        int len;
        byte[] bytes = new byte[1024];
        while((len = bfr.read(bytes)) != -1){
            bos.write(bytes,0,len);
        }
        //4、客户端通知服务器数据传输完毕 通过socket通信管道方法
        socket.shutdownOutput();

        //5、获取服务端反馈
        BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
        String msg = br.readLine();
        System.out.println("服务端反馈信息:" + msg);

        //6、释放资源
        socket.close(); //socket关闭表示 撤销连接
相关推荐
Cry丶8 小时前
ubuntu安装vsftpd
服务器·网络·ubuntu
木子欢儿10 小时前
openconnect Linux客户端安装 以及开机自启和登录
linux·运维·服务器
..Dauntless..11 小时前
【Linux】文件系统(一)
linux·运维·服务器
九零HTTP12 小时前
10月21号-CSDN配菜-IP池的5个坑
服务器·数据库·tcp/ip
SHENGWEI胜为12 小时前
交换机端口显示正常,终端却获取不到 IP 地址?从 DHCP 流程定位故障
服务器·网络·测试工具·缓存·通信工程
极光通讯12 小时前
液冷服务器对内存和SSD的适配要求:高密度部署下的散热与信号完整性
运维·服务器
ITxiaobing202312 小时前
海外广告投放的 IP 定位服务怎么选?一份基于实测数据的选型参考
网络协议·tcp/ip·php
IMPYLH13 小时前
Linux 系统备份与镜像
linux·服务器·网络
淘气包海鸟14 小时前
水声网络框架
网络·ns3·水
aaa最北边14 小时前
Linux 上的交叉编译
linux·运维·服务器