网络编程,字节流转换缓冲流失败

简单网络程序无错误却无法进行,debug没发现异常。

##Server

public class ServerTCP {
    public static void main(String[] args) throws IOException {
        System.out.println("服务端启动 , 等待连接 .... ");
        // 1.创建 ServerSocket对象,绑定端口,开始等待连接
        ServerSocket ss = new ServerSocket(6666);
        // 2.接收连接 accept 方法, 返回 socket 对象.
        Socket server = ss.accept();
        // 3.通过socket 获取输入流
        BufferedInputStream bis = new BufferedInputStream(server.getInputStream());
        // 4.一次性读取数据
        // 4.1 创建字节数组
        byte[] b = new byte[1024];
        // 4.2 据读取到字节数组中.
        int len = bis.read(b);
        // 4.3 解析数组,打印字符串信息
        String msg = new String(b, 0, len);
        System.out.println(msg);
        // =================回写数据=======================
        // 5. 通过 socket 获取输出流
        BufferedOutputStream bos = new BufferedOutputStream(server.getOutputStream());
        // 6. 回写数据
        bos.write("我很好,谢谢你".getBytes());
        // 7.关闭资源.
        bos.close();
        bis.close();
        server.close();
    }
}

#Client

public class ClientTCP {
    public static void main(String[] args) throws Exception {
        System.out.println("客户端 发送数据");
        // 1.创建 Socket ( ip , port ) , 确定连接到哪里.
        Socket client = new Socket("localhost", 6666);
        // 2.通过Scoket,获取输出流对象
        OutputStream os = client.getOutputStream();
        BufferedOutputStream bos = new BufferedOutputStream(os);
        // 3.写出数据.
        os.write("client发送".getBytes());
        //在这块修改成bos.write("client发送".getBytes());不报错,但程序卡在服务端阻塞状态。
        // 4. 通过Scoket,获取 输入流对象
        BufferedInputStream bis = new BufferedInputStream(client.getInputStream());
        // 5. 读取数据数据
        byte[] b = new byte[100];
        int len = bis.read(b);
        System.out.println(new String(b, 0, len));
        // 6. 关闭资源 .
        bis.close();
        bos.close();
        os.close();
        client.close();
    }
}

##疑问:为什么在client中 os.write(“client发送”.getBytes());修改成bos.write(“client发送”.getBytes());不报错,但程序卡在服务端阻塞状态。
记录一下,以后解决了回来添加方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值