网络编程socket理论一

网络通信理论

首先说下网络之间的通信流程看图

Socket 层是位于运输层和应用层之间的,封装好的,方便使用

Socket 是什么和工作流程

Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。

 一个生活中的场景。你要打电话给一个朋友,先拨号,朋友听到电话铃声后提起电话,这时你和你的朋友就建立起了连接,就可以讲话了。等交流结束,挂断电话结束此次交谈。 生活中的场景就解释了这工作原理。

Tcp的三次握手和四次挥手

先看理论图

这些都是底层实现的,socket中都不用写这些,只需要明白其中原理就行,

三次握手:

三次握手:客户端先给服务端发送一个syn请求,如果客户端收到就回复一个ack,客户端收到服务端的消息后,也会回复一个ack表示能收到对方的消息:

其实三次握手就是:保证服务端和客户端都能接收到对方的消息

四次挥手:

客户端给服务端发送消息说:自己发送完了,问服务端是否还有消息:

服务端将数据发送完毕

服务端发送消息说自己发送完毕,并准备关闭链接

客户端也关闭链接

通俗的来说就是:

三次握手: 通俗的来讲就是 A和B打电话

第一次握手 : 你好, 我是A, 你能听到我说话吗

第二次握手 : 听到了, 我是B, 你能听到我说话吗

第三次握手 : 听到了, 我们可以开始聊天了

 

三次握手其实就是为了检测双方的发送和接收能力是否正常, 你说呢?

四次挥手

第一次挥手 : A告诉B, 我没数据发了, 准备关闭连接了, 你要发送数据吗

第二次挥手 : B发送最后的数据

第三次挥手 : B告诉A, 我也要关闭连接了

第四次挥手 : A告诉B你可以关闭了, 我这边也关闭了

 

scoket编程请看下一篇文章

原文地址:https://www.cnblogs.com/xiaokang01/p/9057004.html