当前位置: 首页 > wzjs >正文

建设用地规划公示在哪个网站查苏州建设工程材料信息价

建设用地规划公示在哪个网站查,苏州建设工程材料信息价,女生学大数据好就业吗,如何做医药类网站一、TCP三次握手简介 TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。在TCP连接中,只有两方进行通信,它使用校验和、确认和重传机制来保证数据的可靠传输。…

一、TCP三次握手简介

TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。在TCP连接中,只有两方进行通信,它使用校验和、确认和重传机制来保证数据的可靠传输。

二、三次握手过程

1.第一次握手(SYN)

客户端向服务器发送一个SYN(同步序列编号)标志位的TCP数据包,请求建立连接。这个数据包中包含了客户端的初始序列号(ISN)。

2.第二次握手(SYN+ACK)

服务器收到客户端的SYN请求后,会回复一个带有SYN和ACK(确认)标志位的数据包,称为SYN-ACK响应。这个响应中,服务器确认了客户端的SYN请求,并指定了服务器的初始序列号(ISN)。同时,服务器还会对客户端的初始序列号进行确认,即发送一个确认号(ACK号),表示已经收到客户端发送的序列号加1的数据。

3.第三次握手(ACK)

客户端收到服务器的SYN-ACK响应后,会发送一个带有ACK标志位的数据包,表示确认了服务器的响应。这个ACK数据包中,客户端会确认收到了服务器的SYN响应,并指定了下一个要发送的序列号(即服务器的初始序列号加1)。至此,三次握手完成,TCP连接建立成功,双方可以开始进行数据传输。

三、为什么需要三次握手

1.三次握手原因

三次握手的主要目的是为了确保双方的发送和接收能力都正常,防止已失效的连接请求报文突然又传送到服务器,从而产生错误。通过三次握手,可以告知对方自己的初始序号值,并确认收到对方的初始序号值。

  • 第一次握手:客户端向服务器端发送报文,证明客户端的发送能力正常。
  • 第二次握手:服务器端接收到报文并向客户端发送报文,证明服务器端的接收和发送能力正常。
  • 第三次握手:客户端向服务器发送报文,证明客户端的接收能力正常。

这样,三次握手确保了双方都准备好进行数据传输,从而可以愉快地进行通信了。

2.无三次握手示例

如果没有三次握手,TCP连接将无法建立,因为三次握手确保了双方都准备好发送和接收数据。下面我将提供一个简化的示例,展示如果没有三次握手,客户端和服务器之间的通信可能会出现的问题。

2.1服务器端代码(没有三次握手)

import socketdef main():# 创建 socket 对象server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 获取本地主机名host = socket.gethostname()port = 9999# 绑定端口号server_socket.bind((host, port))# 设置最大连接数,超过后排队server_socket.listen(5)print("服务器启动,等待连接...")while True:# 建立客户端连接client_socket, addr = server_socket.accept()print(f"连接地址: {str(addr)}")# 直接发送数据,没有等待客户端的确认client_socket.send(b'你好,客户端!')# 关闭连接client_socket.close()if __name__ == "__main__":main()

2.2客户端代码(没有三次握手)

import socket
import timedef main():# 创建 socket 对象client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 获取本地主机名host = socket.gethostname()port = 9999# 连接到服务器,指定主机和端口client_socket.connect((host, port))# 等待一段时间,模拟没有发送SYN和等待服务器的SYN+ACKtime.sleep(2)# 接收数据,但由于没有完成三次握手,服务器可能还没有准备好发送数据data = client_socket.recv(1024)if data:print(f"来自服务器的消息:{data.decode()}")else:print("没有收到任何数据")# 关闭连接client_socket.close()if __name__ == "__main__":main()

2.3可能出现的问题

  1. 数据丢失:在客户端尝试接收数据之前,服务器可能还没有准备好发送数据,或者服务器在客户端准备好接收之前就已经发送了数据。这可能导致客户端接收不到任何数据。

  2. 连接不稳定:由于没有进行三次握手,客户端和服务器之间的连接可能不稳定,容易出现断开连接的情况。

  3. 数据乱序:没有三次握手,就无法确保数据的顺序和完整性,可能导致数据乱序或丢失。

  4. 重复数据:如果客户端或服务器在没有确认对方已准备好的情况下发送数据,可能会导致重复发送数据。

这些代码示例仅用于说明没有三次握手可能导致的问题,实际应用中,TCP协议会自动处理三次握手的过程,开发者不需要手动实现。在实际编程中,我们通常使用高级的网络库,这些库已经为我们处理了这些底层的细节。

四、三次握手示例代码

1.服务器端代码(Server.py)

import socket# 创建 socket 对象
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 获取本地主机名
host = socket.gethostname()
port = 9999# 绑定端口号
server_socket.bind((host, port))# 设置最大连接数,超过后排队
server_socket.listen(5)while True:# 建立客户端连接client_socket, addr = server_socket.accept()print(f"连接地址: {str(addr)}")# 接收小于 1024 字节的数据data = client_socket.recv(1024).decode()print(f"收到消息:{data}")# 发送数据client_socket.send(b'服务器收到消息')# 关闭连接client_socket.close()

2.客户端代码(Client.py)

import socket# 创建 socket 对象
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 获取本地主机名
host = socket.gethostname()
port = 9999# 连接到服务器,指定主机和端口
client_socket.connect((host, port))# 发送数据
client_socket.send(b'你好,服务器!')# 接收小于 1024 字节的数据
data = client_socket.recv(1024)
print(f"来自服务器的消息:{data.decode()}")# 关闭连接
client_socket.close()

3.运行步骤

  1. 首先运行服务器端代码(Server.py),它会在本地的9999端口上监听客户端的连接。
  2. 然后运行客户端代码(Client.py),它会尝试连接到服务器,并发送一条消息。
  3. 服务器接收到消息后,会回复一条消息给客户端。
  4. 客户端接收到服务器的回复,并打印出来。
  5. 最后,客户端和服务器都会关闭连接。

文章转载自:

http://mssxQiWt.yLxgw.cn
http://HWuSJqqH.yLxgw.cn
http://fDrYfZmU.yLxgw.cn
http://SNw2g4w5.yLxgw.cn
http://hovDilRs.yLxgw.cn
http://PSBvSxMk.yLxgw.cn
http://cw2rsjrr.yLxgw.cn
http://zDHq97su.yLxgw.cn
http://EZfHYDaq.yLxgw.cn
http://tkFKIoae.yLxgw.cn
http://ioBpS5Xw.yLxgw.cn
http://oSCoRUVa.yLxgw.cn
http://2QqADzKy.yLxgw.cn
http://D12f2xSO.yLxgw.cn
http://iaw2wDTz.yLxgw.cn
http://pbM69XxE.yLxgw.cn
http://VxJI8dy9.yLxgw.cn
http://tfla6BuK.yLxgw.cn
http://RWm8euNM.yLxgw.cn
http://9DsmRfIT.yLxgw.cn
http://WIWArdK9.yLxgw.cn
http://9RUSIE6w.yLxgw.cn
http://iqj1wr5g.yLxgw.cn
http://yARQKViR.yLxgw.cn
http://wpL6NSrS.yLxgw.cn
http://npqOpW6M.yLxgw.cn
http://88FCNtBf.yLxgw.cn
http://g9v28gqa.yLxgw.cn
http://0Nav8Bk3.yLxgw.cn
http://viq4vEOc.yLxgw.cn
http://www.dtcms.com/wzjs/658798.html

相关文章:

  • 男女做爰视频免费网站怎样建一个自己的网站
  • 景德镇市城市建设规划网站建设企业网站源码
  • 对网站的建议专门下软件的app
  • 创建企业网站网站百度不收录
  • 怎样做网站手机客户端深圳最好的网站开发公司电话
  • 做网站现在赚钱吗ui做网站实例
  • 怎么网站搜索排名优化wordpress移动端底部导航栏
  • 网站的设计与实现豪华大气的旅行社网站源码
  • 计算机网站怎么做祥云网站建设公司 概况
  • 那个网站可以找人做兼职手游推广平台代理
  • 小松建设的官方网站附近广告设计与制作门店电话
  • 网站里的团队建设范本教育类的网站案例
  • 石家庄专业做网站仿网站制作教学视频教程
  • 思乐网站建设南通网站定制费用
  • 网站建设怎么付款水果网络营销推广方案
  • 佛山专注网站制作细节江阴网页设计
  • 简单企业网站源码生产网线需要什么设备
  • 有哪些网站可以做笔译恩施做网站
  • 文明网站机制建设北京企业营销网站建设
  • 制作一个网站的费用关东建设有限公司网站
  • 外国网站域名在哪查织梦如何做网站地图
  • 免费网站建站 知乎奉节做网站
  • 网站开发准备流程图网站备案更改
  • 手机销售网站怎么做的代网站建设
  • 公司网站建设哪里好唐山电商网站建设
  • 关于网站的毕业设计阳江房产网二手房
  • 亚马逊在哪个网站做推广做网站公司怎么开拓更多业务
  • 怎样做有效的黄页网站青春网站建设工作室
  • 上海住房和城乡建设局网站深圳做棋牌网站建设
  • 哪里有网站建设哪家好网站制作的一般步骤是什么