网络编程(2)socket
Python中内置了一个socket模块,可以快速实现网络之间进行传输数据。例如:
-
服务端,放在左边云服务器中(有固定IP)
import socket # 1.监听本机的IP和端口 sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.bind(('127.0.0.1', 8001)) # IP,端口 # 这里是一个元组 sock.listen(5) # 支持排队等待5人 while True: # 2.等待,有人来连接(阻塞) conn, addr = sock.accept() # 等待客户端来连接(阻塞) # 3.等待,连接者发送消息(阻塞) client_data = conn.recv(1024) # 等待接收客户端发来数据 print(client_data.decode('utf-8')) # 字节 # 4.给连接者回复消息 conn.sendall("hello world".encode('utf-8')) # 5.关闭连接 conn.close() # 6.停止服务端程序 sock.close() -
客户端,放在右边用户电脑上
import socket # 1. 向指定IP发送连接请求 client = socket.socket() client.connect(('127.0.0.1', 8001)) # 向服务端发起连接(阻塞)10s # 2. 连接成功之后,发送消息 client.sendall('hello'.encode('utf-8')) # 3. 等待,消息的回复(阻塞) reply = client.recv(1024) print(reply) # 4. 关闭连接 client.close()
服务端的代码需修改:监听的IP修改为A的IP地址。
客户端的代码需修改:连接的IP修改为A的IP地址(客户端要去找到服务端,并与服务端创建连接)。
浙公网安备 33010602011771号