通过8.2的实例1-6,我们可以总结出来,socket的服务端和客户端的一般建立步骤:
服务端
步骤:1创建实例,2绑定,3监听,4阻塞,5发送&接收数据,6关闭。
#Author:Zheng Na # 服务端 import socket server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 创建socket实例 server.bind(('localhost', 6969)) # 绑定要监听的端口 server.listen() # 监听 while True: # 保证一个客户端断开后,服务端等待其他客户端连接,否则服务端随着客户端一同断开(linux系统执行成功,Pycharm中随着客户端断开而断开?) print("等待新的连接") conn, addr = server.accept() # 阻塞,等待信息传送 print("new conn: ", addr) while True: # 保证客户端可向服务端多次发送数据 data = conn.recv(1024) # 接收数据 if not data: # 防止服务端因客户端关闭而进入死循环 print("client is lost...") break print("recv from client: ", data) conn.send(data.upper()) # 发送数据 server.close() # 关闭
客户端
步骤:1创建实例,2连接,3发送&接收数据,4关闭。
#Author:Zheng Na # 客户端 import socket client = socket.socket() # 创建socket实例 client.connect(('localhost', 6969)) # 连接 while True: msg = input(">>: ").strip() if len(msg) == 0: continue client.send(msg.encode("UTF-8")) # 发送数据 data = client.recv(1024) # 接收数据 print("recv from server: ", data) client.close() # 关闭
总结