Java_网络编程

博学谷IT学习技术支持

网络编程入门

网络编程就是使多台主机可以互通有无的传递消息。
主要三要素:
IP地址
你要给哪台主机发送消息?就是通过IP去指定的

端口号
给主机的哪个程序去接受呢?通过端口号来指定交给谁处理

传输方式
一般我们有两种传输方式,TCP和UDP

UDP通讯

UDP是无连接的,会丢包,但传输快。一般可以用于直播的音视频场景。
UDP有三种模式:
单播
一对一的发送模式
组播
一对多的发送模式
广播
一对所有的发送模式

TCP通讯

TCP是长连接,不会丢包,但是传输较慢,因为要保证连接的建立才能发送消息。

TCP的三次握手
为了保证连接的建立,需要三次握手
第一次:
客户端发送我想连接你,可以吗?
第二次:
服务器回应,没问题呀。
第三次
客户端正式发起连接,建立成功。

TCP的四次挥手
为了保证连接的安全断开,需要四次挥手。
第一次:
客户端说我想离开了。
服务器回应稍等,我收拾点东西你在离开
服务器收拾好东西后说你可以离开了
客户端正式开始发起断开。

NIO通讯

NIO就是一个非阻塞的传输方式

三大模块
缓冲区
缓冲区用的最多一般是ByteBuffer,它可以存数据也可以写数据,在NIO主要就是它来封装数据。
通道
客户端和服务器端建立的连接通道。用于传输封装好的数据
选择器
用于监听通道的4种状态
通道是否已连接
通道是否可读
通道是否可写
通道是否已访问

HTTP协议

我们虽然已经可以用NIO来传递数据了。
但是这一块数据我们如何来使用呢?
是不是需要解析出来。
就需要客户端和服务器约定好沟通协议。

这个地方我们就可以用HTTP

请求的结构
请求行:
请求方式 请求的资源 协议版本
请求头
key: value
请求空行
请求体

响应的结构
响应行:
协议版本 响应码 响应消息
响应头:
key: value
Content-Type: text/html
响应空行
响应体

然后我们客户端和服务器基于这一套协议就可以完成沟通。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值