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

本文探讨了Socket网络编程的基础,包括服务器端和客户端的工作原理,以及Clinet/Server模型。深入解析了传统socket的线程消耗问题,并介绍了伪异步IO与线程池结合的解决方案。对比了阻塞与非阻塞IO的区别,阐述了同步和异步的概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你今天学习了吗?

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值