• 服务端,放在左边云服务器中(有固定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:

  1. # 2.等待,有人来连接(阻塞)
  2. conn, addr = sock.accept() # 等待客户端来连接(阻塞)
  3. # addr指的是客户端,coon指的是连接管道
  4. """这里结束以后 连接才开始建立"""
  5. # 3.等待,连接者发送消息(阻塞)
  6. client_data = conn.recv(1024) # 等待接收客户端发来数据,括号里的参数单位是字节
  7. print(client_data.decode('utf-8')) # 字节
  8. # 4.给连接者回复消息
  9. conn.sendall("hello world".encode('utf-8'))
  10. # 5.关闭连接
  11. conn.close()

6.停止服务端程序

sock.close()

  1. - 客户端,放在右边用户电脑上
  2. ```python
  3. import socket
  4. # 1. 向指定IP发送连接请求
  5. client = socket.socket() # 创建客户端对象
  6. client.connect(('123.206.15.88', 8001)) # 向服务端发起连接(阻塞)10s
  7. # 2. 连接成功之后,发送消息
  8. client.sendall('hello'.encode('utf-8'))
  9. # 3. 等待,消息的回复(阻塞)
  10. reply = client.recv(1024) # 等待接收服务端发来数据,括号里的参数单位是字节
  11. print(reply)
  12. # 4. 关闭连接
  13. client.close()
  14. # 这里如果客户端关闭,会向服务端发送None