个人笔记--socket网络编程(1基本介绍)

socket 网络基本编程 Serversocket 服务器端 Socket 客户端 又称"套接字" ,应用程序通常通过"套接字"向网络发出或者应答请求. 位置: java.net包 socket 是建立网络连接时使用的,在连接成功时,应用程序两端都会产生一个socket实例,操作这个实例,完成所需会话,他们之间的回话是平等的,不管Socket还是ServerSocket它们的工作都是通过SocketImpl类及其子类完成的 建立的步骤为: 服务器监听 客户端请求 服务器确认 客户端进行连接确认
网络的基本模型是Clinent/Server模型.也就是两个进程直接进行相互通信,其中服务端提供配置信息(绑定的IP地址和监听端口),客户端通过连接操作向服务端监听的地址发起连接请求,通过三次握手建立连接,如果连接成功免责双方进行网络通信 缺点:古老的socket 每当一个客户端发起请求都会新起一个线程,浪费资源,所以不支持过多的客户端进行访问

1.4伪异步IO 采用线程池和任务队列可以实现一种伪异步的IO通信框架,其实就是将客户端的socket封装成一个task任务)(实现runnbale接口的类),然后投递到线程池中去,配置成相应的队列实现 缓解服务器压力

异步+非堵塞 = 1.7版本

IO 和 NIO的区别:其本质就是阻塞和非阻塞的区别 一 阻塞概念: 应用程序在获取网络数据的时候,如果网络传输数据很慢,那么程序就一直等着直到传输完毕为止 二 非阻塞概念: 应用程序直接可以获取以准备就绪的数据,无需等待.

同步和异步:同步和异步一般是面向操作系统和应用程序对IO操作的层面上区别的 同步说的是你的server服务器的执行方式 阻塞说的是具体的技术,接受数据的方式,状态(io,nio)

个人笔记--socket网络编程(1基本介绍)