主要掌握的就是步骤
1 Socket服务端开发
"""
Socket(简称套接字): 负责进程之间的网络数据传输,好比数据的搬运工
"""
import socket
# 1. 创建Socket对象
socket_server = socket.socket()
# 2. 绑定IP地址和端口
socket_server.bind(("localhost", 8082))
# 3. 监听端口
socket_server.listen(1) # listen方法接收一个整数参数,表示接受的连接数量
# 4. 等待客户端连接
coon, address = socket_server.accept()
# accept方法返回的是二元元组(连接对象, 客户端地址信息)
# accept是阻塞的方法,等待客户端的连接,如果没有客户端的连接,就会一直卡在这,不向下执行
print(f"接收了客户端的连接,客户端的信息为:{address}")
while True:
# 5. 接收客户端信息 (要使用客户端和服务端的本次连接对象,而非socket_server)
data: str = coon.recv(1024).decode("UTF-8")
# recv方法接收一个整数参数,表示缓冲区的大小,一般给1024即可
# recv方法返回的是一个bytes字节类型数据数组,需要解码成字符串
print(f"客户端发来的消息是: {data}")
# 6. 发送恢复消息
msg = input("请输入要回复客户端的消息: ")
if msg == "exit":
break
coon.send(msg.encode("UTF-8")) # 将字符串编码为字节数组对象
# 7. 关闭连接
coon.close()
socket_server.close()
2 Socket客户端开发
import socket
# 1. 创建 socket 对象
socket_client= socket.socket()
# 2. 连接到服务端
socket_client.connect(("localhost", 8082))
while True:
# 3. 发送消息
msg = input("请输入要发送的消息:")
if msg == "exit":
break
socket_client.send(msg.encode("UTF-8"))
# 4.接收服务端返回的消息
recv_data = socket_client.recv(1024)
print(f"服务端返回的消息:{recv_data.decode('UTF-8')}")
# 5. 关闭连接
socket_client.close()