Socket(套接字),是进程之间通讯的一种工具。负责进程之间的网络数据传输,是数据的搬运工
两个进程之间通过Socket进行相互通讯,就必须有服务端和客户端
①Socket服务端:等待其他进程的连接欸,可接受发来的消息,可以回复消息
②Socket客户端:主动连接欸服务端,可以发送消息,可以接受消息
import socket
#创建一个Socket对象
socket_server = socket.socket()
#绑定Socket——server到指定ip和地址
socket_server.bind(("localhost",8888))
#服务端开始监听端口
socket_server.listen(1)#接受的整数参数表示允许连接的数量
#接受客户端连接,获得连接对象
# result:tuple = socket_server.accept()#返回值为二元元组
# conn = result[0] #客户和服务器的连接对象
# address = result[1] #客户端的地址信息
conn , address = socket_server.accept()#返回值为二元元组,为客户和服务器的连接对象和客户端的地址信息,accept是一个阻塞的方法
print(f"接受到了客户端的连接,客户端的信息是:{address}")
#客户端连接之后,通过recv方法,接收客户端发送的消息,要使用客户端和服务的短连接对象,而不是Socket_server对象
#recv接受的参数是缓冲区的大小,revc返回值是一个字节数组,可以通过decode方法将字节数组转换为字符串对象
data:str = conn.recv(1024).decode("utf-8")
print(f"客户端发的消息是,{data}")
#通过conn(客户端当时连接的对象),调用send方法可以回复消息
msg:str = input("请输入你要和客户端回复的消息").encode("utf-8")#encode可以将字符串编码为字节数组对象
conn.send(msg)
#conn(客户端当此连接对象)和Socket——server对象调用close方法,关闭连接
conn.close()
socket_server.close()
下载客户端小程序:https://github.com/nicedayzhu/netAssist/releases/tag/v0.9