1.socket主要分为服务端和客户端:
案例1:
客户端:
服务端:
案例二:
服务端:
上述需要加换行,不加则客户端还没读取完,io就关闭了
客户端:
Socket通信流程:
2.协议分析:
请求发送:
3.网络io通信原理
4.扩展: 上述案例二服务端只能处理处理一个连接,如果是多个,可以加一个while循环,表示可以按顺序处理多个连接,但是这样效率非常低下,加入有1000个同时连接,则可以想象时间耗时。方法中的accept表示阻塞等待。这也就是所说的BIO
BIO:
阻塞是阻塞accept连接和Io
BIO:改进,将连接交给线程池来解决,服务端改进:
ServSocketThread实现Runnable接口
缺点: 线程数量与硬件资源有关。