Javaweb---网络编程(4)

TCP的客户端和服务器端

简要概括:
在这里插入图片描述
在这里插入图片描述
关于Accept( )
在这里插入图片描述
在这里插入图片描述
服务器中的连接:
在这里插入图片描述
在这里插入图片描述
结果显示:
在这里插入图片描述
此时引入第一个bug的来源:
Bug 1:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
进一步理解缓冲区
在这里插入图片描述
在这里插入图片描述
Bug 2:
在这里插入图片描述
产生的原因:原因在于accept( )方法:
accept的工作原理:
在这里插入图片描述
解决方案: accept方法和connection同时进行
其他代码不变
在这里插入图片描述
主线程专门负责accept方法 其他线程负责和客户端之间的沟通
结果显示:
在这里插入图片描述
错误示例:
在这里插入图片描述
此时上面代码还存在一个问题:
每次来一个客户端创建一个线程
断开一次连接销毁一次线程
当大量的客户端被建立和大量的客户端被销毁就会导致服务器频繁的创建和销毁线程 因此使用线程池来处理这个问题.
最终版本:
在这里插入图片描述
此代码节省了频繁创建和销毁线程的开销
TCP特点: 有连接 可靠 面向字节流 全双工

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值