- 服务端,放在左边云服务器中(有固定IP) ```python import socket
1.监听本机的IP和端口
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 创建服务端对象
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) # IP可复用
sock.bind((‘123.206.15.88’, 8001)) # 绑定服务端IP,端口
“””这里由于服务端的IP会随着地址变化
如果输入:127.0.0.1 (指定本机IP)
如果输入:192.168.28.92 (局域网IP)
在服务器输入外网IP即可
“””
sock.listen(5) # 支持排队等待5人
while True:
# 2.等待,有人来连接(阻塞)conn, addr = sock.accept() # 等待客户端来连接(阻塞)# addr指的是客户端,coon指的是连接管道"""这里结束以后 连接才开始建立"""# 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()
- 客户端,放在右边用户电脑上```pythonimport socket# 1. 向指定IP发送连接请求client = socket.socket() # 创建客户端对象client.connect(('123.206.15.88', 8001)) # 向服务端发起连接(阻塞)10s# 2. 连接成功之后,发送消息client.sendall('hello'.encode('utf-8'))# 3. 等待,消息的回复(阻塞)reply = client.recv(1024) # 等待接收服务端发来数据,括号里的参数单位是字节print(reply)# 4. 关闭连接client.close()# 这里如果客户端关闭,会向服务端发送None
