百木园-与人分享,
就是让自己快乐。

Python 学习笔记(七)--socket

1.网络七层模型及主要协议

2.TCP的“三次握手”和四次挥手

三次握手

Step1:首先客户端向服务器端发送一段TCP报文;

Step 2:服务器端接收到来自客户端的TCP报文之后,结束LISTEN阶段,并返回一段TCP报文;

Step 3:客户端接收到来自服务器端的确认收到数据的TCP报文之后,明确了从客户端到服务器的数据传输是正常的,结束SYN-SENT阶段,并返回最后一段TCP报文。

此后客户端和服务器端进行正常的数据传输。

四次挥手

 

Step 1:首先客户端想要释放连接,向服务器端发送一段TCP报文;

Step 2:服务器端接收到从客户端发出的TCP报文之后,确认了客户端想要释放连接,随后服务器端结束ESTABLISHED阶段,进入CLOSE-WAIT阶段(半关闭状态)并返回一段TCP报文;

Step 3:服务器端自从发出ACK确认报文之后,经过CLOSED-WAIT阶段,做好了释放服务器端到客户端方向上的连接准备,再次向客户端发出一段TCP报文;

Step 4:客户端收到从服务器端发出的TCP报文,确认了服务器端已做好释放连接的准备,结束FIN-WAIT-2阶段,进入TIME-WAIT阶段,并向服务器端发送一段报文。

服务器端收到从客户端发出的TCP报文之后结束LAST-ACK阶段,进入CLOSED阶段。由此正式确认关闭服务器端到客户端方向上的连接。

3.socket

socket(简称 套接字)是进程间通信的一种方式,它与其它进程间通信的一个主要不同是:socket 可以实现不同机器间的进程通信。

下面是简单的Case,帮助理解。

 客户端

from socket import socket, AF_INET, SOCK_STREAM

##表示创建一个客户端的socket

client
= socket(AF_INET, SOCK_STREAM) ##SOCK_STREAM --表示TCP; SOCK_DGRAM--表示UDP;

##定义一个连接的目标

con_address
= (\'IP地址\',端口号)

##告诉客户端要连接的服务器的地址和端口号

client.connect(con_address)

##发送data

client.send(
\'python学习笔记\'.encode(\'utf-8\'))

##关闭
socket.close()

来源:https://www.cnblogs.com/xuliuzai/p/15506254.html
图文来源于网络,如有侵权请联系删除。

未经允许不得转载:百木园 » Python 学习笔记(七)--socket

相关推荐

  • 暂无文章