代码改变世界

BIO

2024-03-31 00:01  Spiderman25  阅读(7)  评论(0)    收藏  举报
package com.spider.springcloud.io.bio;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class BIOServer {
    // 在main线程中执行下面这些代码
    public static void main(String[] args) {
//使用Socket进行网络通信
        ServerSocket server = null;
        Socket socket = null;
//基于字节流
        InputStream in = null;
        OutputStream out = null;
        try {
            server = new ServerSocket(8000);
            System.out.println("服务端启动成功,监听端口为8000,等待客户端连接...");
            while (true){
                socket = server.accept(); //等待客户端连接
                System.out.println("客户连接成功,客户信息为:" +
                        socket.getRemoteSocketAddress());
                in = socket.getInputStream();
                byte[] buffer = new byte[1024];
                int len = 0;
//读取客户端的数据
                while ((len = in.read(buffer)) > 0) {
                    System.out.println(new String(buffer, 0, len));
                }
//向客户端写数据
                out = socket.getOutputStream();
                out.write("hello!".getBytes());
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
package com.spider.springcloud.io.bio;

import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;
import java.util.Scanner;

public class Client01 {
    public static void main(String[] args) throws IOException {
//创建套接字对象socket并封装ip与port
        Socket socket = new Socket("127.0.0.1", 8000);
//根据创建的socket对象获得一个输出流
//基于字节流
        OutputStream outputStream = socket.getOutputStream();
//控制台输入以IO的形式发送到服务器
        System.out.println("TCP连接成功 \n请输入:");
        String str = new Scanner(System.in).nextLine();
        byte[] car = str.getBytes();
        outputStream.write(car);
        System.out.println("TCP协议的Socket发送成功");
//刷新缓冲区
        outputStream.flush();
//关闭连接
        socket.close();
    }
}