TCP协议

目录

什么是TCP协议

客户端:

总结:

 服务端:

 总结:

多发多收

同时接受多个客户端消息

使用线程池优化

本次使用线程池的优势在哪里?


什么是TCP协议

TCP是一种面向连接,安全、可靠的传输数据的协议。

传输前,采用“三次握手”方式,点对点通信,是可靠的。

在连接中可进行大数据量的传输。

注意:在Java中只要是使用java.net.Socket类实现通信,底层即是使用了TCP协议。

客户端:

 

总结:

1.TCP通信的客户端的代表类是谁?
① Socket类

② public Socket(String host, int port)

2.TCP通信如何使用Socket管道发送、接收数据。

① OutputStream getOutputStream():获得字节输出流对象(发)

② InputStream getInputStream():获得字节输入流对象(收)

 服务端:

ServerSocket

 

 总结:

1.TCP通信服务端用的代表类?
① ServerSocket类,注册端口。

② 调用accept()方法阻塞等待接收客户端连接,得到Socket对象。

2.TCP通信的基本原理?

① 客户端怎么发,服务端就应该怎么收。

② 客户端如果没有消息,服务端会进入阻塞等待。

③ Socket一方关闭或者出现异常、对方Socket也会失效或者出错。

多发多收

 

  

同时接受多个客户端消息

 

使用线程池优化

服务端同时接收多个客户端消息时,如果客户端并发过多,会导致系统瘫痪。所以为了防止这种事情发生,服务端需要使用线程池来优化。

代码中有3个核心线程,最大线程数为5,队列中有2个位置,当3个核心线程都被占用时第4个线程会进入队列等待,第5个线程也会进入队列等待,当第6个线程到来时4,5,6线程中会有一个线程会占用临时线程,当第7个线程来又会有一个等待的线程占用临时线程,当第八个线程来时会被拒绝。

本次使用线程池的优势在哪里?

1.服务端可以服用线程处理多个客户端,可以避免系统瘫痪。

2.适合客户端通信时长较短的场景。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值