标签:应用层 com 0.0.0.0 ade 了解 hello sock 二次 9.png
MAC地址:唯一的地址
TCP可靠、UDP不可靠
说明一:
? 作为Python开发,咱们都是在应用层的HTTP协议之上进行开发的。
说明二:
网络编程,主要是了解我们Python能编写的最低的层次,即传输层的基本情况
说明三:
HTTP协议是基于TCP之上的,因此我们需要了解TCP连接的基本过程
为什么三次
因为第一次只是客户端告诉服务端
第二次,客户端才知道服务端收到了
第三次,服务端才知道客户端收到了
客户端向服务端请求
服务端向客户端响应
一发一收
一收一发
为什么多了一次?
因为服务端可能还数据要发。
到底是一次连接传一次数据;还是一次连接传多次数据?
都可以:HTTP协议 前者、Websocket 后者
127.0.0.1 自己
0.0.0.0 任意访问
端口是用来区分我们的应用程序的,范围:0-65535
>>> import socket >>> sock = socket.socket() >>> sock <socket.socket fd=792, # 文件描述符(唯一标识了一个socket) family=AddressFamily.AF_INET, # AF_INET表示IPv4 type=SocketKind.SOCK_STREAM, # SOCK_STREAM表示TCP proto=0> # 通常都是0
>>> import socket >>> server = socket.socket() # 生成套接字 >>> server.bind((‘0.0.0.0‘,8899)) # 绑定套接字,4个0为全网地址,可以不写 >>> server.listen(5) # 监听套接字,5为监听数量
>>> import socket >>> client = socket.socket() >>> client.connect((‘127.0.0.1‘,8899))
>>> import socket >>> server = socket.socket() >>> server.bind((‘‘,8899)) >>> server.listen(5) >>> conn,addr = server.accept() # accept会阻塞
客户端 一发 一收
服务端 一收 一发
recv 会阻塞哟!
# 服务端 >>> import socket >>> server = socket.socket() >>> server.bind((‘‘,8899)) >>> server.listen(5) >>> conn,addr = server.accept() >>> conn.recv(1024) b‘hello‘ >>> conn.send(b‘thanks‘) 6 ? # 客户端 >>> import socket >>> client = socket.socket() >>> client.connect((‘127.0.0.1‘,8899)) >>> client.send(b‘hello‘) 5 >>> client.recv(1024) b‘thanks‘
>>> import socket >>> client = socket.socket() >>> client.connect((‘127.0.0.1‘,8899)) >>> client.send(b‘hello‘) 5 >>> client.recv(1024) b‘thanks‘ >>> client.close() # 断开连接
>>> import socket >>> server = socket.socket() >>> server.bind((‘‘,8899)) >>> server.listen(5) >>> conn,addr = server.accept() >>> conn.recv(1024) b‘hello‘ >>> conn.send(b‘thanks‘) 6 >>> conn.recv(1024) b‘‘ # 接收到空字节,表示客户端已经断开连接 >>> conn.close() # 断开连接
操作一: 服务器套接字:bind
操作二: 服务器套接字:listen
操作三: 客户端套接字:connect
操作四: 客户端套接字:send
操作五: 对等连接套接字:recv
操作六: 对等连接套接字:send
操作七: 客户端套接字:recv
操作八: 客户端套接字:close
操作九: 对等连接套接字:close
标签:应用层 com 0.0.0.0 ade 了解 hello sock 二次 9.png
原文地址:https://www.cnblogs.com/zcmq/p/9275858.html