写一个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() # 关闭客户端套接字
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库