12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- package cn.hhj.bio;
- import java.io.IOException;
- import java.io.InputStream;
- import java.net.ServerSocket;
- import java.net.Socket;
- //同步阻塞IO模型
- public class BIOServer {
- //服务端网络IO模型的封装对象
- ServerSocket server;
- //服务器
- public BIOServer(int port){
- try {
- //Tomcat 默认端口8080
- //只要是Java写的都这么玩,3306
- //Redis 6379
- //Zookeeper 2181
- //HBase
- //RMI
- //TCP
- server = new ServerSocket(port);
- System.out.println("BIO服务已启动,监听端口是:" + port);
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
-
- /**
- * 开始监听,并处理逻辑
- * @throws IOException
- */
- public void listen() throws IOException{
- //循环监听
- while(true){
- //等待客户端连接,阻塞方法
- //Socket数据发送者在服务端的引用
- Socket client = server.accept();
- System.out.println(client.getPort());
- //对方法数据给我了,读 Input
- InputStream is = client.getInputStream();
- //网络客户端把数据发送到网卡,机器所得到的数据读到了JVM内中
- byte [] buff = new byte[1024];
- int len = is.read(buff);
- if(len > 0){
- String msg = new String(buff,0,len);
- System.out.println("收到" + msg);
- }
- }
- }
-
-
- public static void main(String[] args) throws IOException {
- new BIOServer(8080).listen();
- }
-
- }
|