写一个Python简单的Socket网络通讯
完成需求
用Python完成一个简单的Socket通讯实例
1. 服务端
用于提供服务
源码:
import socket
s = socket.socket() # 创建服务器端套接字
# sk.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) # 设置给定套接字选项的值。
s.bind(('127.0.0.1', 8000)) # 把地址绑定到套接字
s.listen() # 监听连接
conn, addr = s.accept() # 接受客户端链接
while True:
ret = conn.recv(1024) # 接收客户端信息
print(ret.decode('utf-8')) # 打印客户端信息
# 结束会话
if ret == b'bye':
conn.send(b'bye')
break
info = input('>>>') # 等用户按下Enter时再次让用户输入
conn.send(bytes(info, encoding='utf-8'))
conn.close() # 关闭客户端链接
s.close() # 关闭服务器套接字
2. 客户端
用于请求服务
源码:
import socket
s = socket.socket() # 创建客户端套接字
s.connect(('127.0.0.1',8000)) # 连接服务器
while True:
info = input('>>>') # 用户输入的信息
s.send(bytes(info,encoding='utf-8')) # 发送输入的信息
ret = s.recv(1024) # 接收信息
# 结束会话
if ret == b'bye':
s.send(b'bye')
break
print(ret.decode('utf-8')) # 打印信息
s.close() # 关闭客户端套接字