本章节用来对BIO进行全方位的概述
服务端
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.IOException;
import java.io.InputStream;
import java.net.InetSocketAddress;
import java.net.ServerSocket;
import java.net.Socket;
public class BioServer {
private final static Logger log = LoggerFactory.getLogger(BioServer.class);
public static void main(String[] args) throws IOException {
ServerSocket serverSocket = new ServerSocket();
serverSocket.bind(new InetSocketAddress("127.0.0.1", 12077));
System.out.println("等待客户端链接");
Socket accept = serverSocket.accept();
System.out.println("客户端" + accept.getRemoteSocketAddress() + "链接成功");
InputStream in = accept.getInputStream();
new Thread(() -> {
byte[] bytes = new byte[10 * 1024];
int len;
try {
while ((len = in.read(bytes)) != -1) {
String clientMsg = new String(bytes, 0, len);
System.out.println("客户端" + accept.getRemoteSocketAddress() + "说" + clientMsg);
}
} catch (IOException e) {
log.error("Read Error", e);
}
}).start();
}
}
客户端
import java.io.IOException;
import java.io.OutputStream;
import java.net.InetSocketAddress;
import java.net.Socket;
import java.nio.charset.StandardCharsets;
public class BioClient {
private static final Logger log = LoggerFactory.getLogger(BioClient.class);
public static void main(String[] args) {
Socket socket = new Socket();
try {
socket.connect(new InetSocketAddress("127.0.0.1", 12077));
OutputStream out = socket.getOutputStream();
out.write("Hello World".getBytes(StandardCharsets.UTF_8));
out.close();
} catch (IOException e) {
log.error("Connect Server is Error", e);
}
}
}