代码:
服务端客户端。
服务端的大约过程:
public static void main(String[] args) {
Server server = new Server(PORT);// 新建一个ServerSocket
server.start(); // 开一个线程以自阻塞获得客户端的socker 获得之后开一个线程在socket里面获得流 读取数据
}
客户端的大约过程:
final Socket socket = new Socket(HOST, PORT);
new Thread(new Runnable() {
@Override
public void run() {
System.out.println("客户端启动成功!");
while (true) {
try {
String message = "hello world";
System.out.println("客户端发送数据: " + message);
socket.getOutputStream().write(message.getBytes());
} catch (Exception e) {
System.out.println("写数据出错!");
}
sleep();
}
}
}).start();
}
每次来一个客户端都创建一个线程。
----------------------------2-1-----------------------------------
博客:https://blog.csdn.net/laomumu1992/article/details/82429771
博客:https://segmentfault.com/a/1190000016481104
----------------------------2-2-----------------------------------
netty和socket的对应关系:
事件循环主要是两个循环,一个是阻塞监听socket,还有一个是循环获取数据。总结就是监听客户端的连接,处理客户端的读写。
1.
2.
看下unsafe:
数据流和是否有新连接。
对应server的这么一段逻辑:
每一个channel都有一个pipline。
下一个:
总结:
NioEventLoop----channel---Pipline逻辑处理链-----ChannelHandler每一个逻辑处理链的逻辑-----ByteBuf读写针对
----------------------------2-3-----------------------------------