文章目录
一、socket是什么?
二、使用步骤
1.server端
2.client端
3.pyinstaller打包
总结
Python系列文章目录
前言
很多时候用到了服务端和客户端的通信,这个时候可能就需要用到socket。
在此会介绍下socket是什么、server端、client端、pyinstaller打包等内容。
一、socket是什么?
socket 是计算机网络编程中的一个重要概念,它提供了一种用于不同计算机进程间通信的机制。在计算机网络中,socket 通常指的是一个端点,用于实现网络通信。
在 Python 中,socket 库提供了创建和操作 socket 的功能。通过这个库,您可以轻松地实现网络通信,例如创建一个服务器来监听客户端的连接,或者创建一个客户端来连接到服务器。
二、使用步骤
1.server端
from socket import *
# 定义服务端
server_socket=socket()
# 绑定地址、端口
server_socket.bind((gethostname(),9999))
# 开始监听
server_socket.listen()
while True:
# 建立客户端连接
client_socket, addr = server_socket.accept()
print('连接地址:', addr)
# 接收客户端发送的数据
data = client_socket.recv(1024)
print('接收数据:', data.decode('utf-8'))
data="测试数据".encode('utf-8')
client_socket.send(data)
while True:
try:
msg=input("请输入:")
if msg=="exit":
break
data=msg.encode('utf-8')
client_socket.send(data)
except:
# 连不上,那就退出
break
2.client端
from socket import *
server="192.168.1.111"
# 定义客户端
client_socket=socket()
# 连接到服务端
client_socket.connect((server,9999))
# 给服务端发送消息
client_socket.send(b'hello')
try:
# 保持连接并发送/接收数据
while True:
# 接收服务器数据
data = client_socket.recv(1024)
print('接收数据:', data.decode('utf-8'))
# 发送响应(可选)
# 发送响应(编码为字节)
response = '收到数据'.encode('utf-8')
client_socket.send(response)
except KeyboardInterrupt:
# 用户中断,关闭连接
print('退出连接')
client_socket.close()
except Exception as e:
# 处理其他异常
print(f'发生错误: {e}')
client_socket.close()
3.pyinstaller打包
如果是常规执行脚本,可以将py文件打包为exe方便日常运行
pyinstaller -F -w -i xx.ico yy.py
-F: 指定打包后的文件为单一的可执行文件,而不是一个包含依赖的文件夹。
-w: 表示创建一个无操作系统的图形用户界面(GUI)的可执行文件。这意味着打包后的程序将不会显示命令行界面。
-i xx.ico: 指定要使用的图标文件。这里的 xx.ico 是您自定义的图标文件名,您需要确保这个文件存在,并且位于命令行工具的当前目录下。
yy.py: 这是您要打包的 Python 脚本文件名。
注意:pyinstaller,是需要通过pip install pyinstaller来安装的,如果运行上述命令还是有命令,可能需要将pyinstaller加入环境变量,该路径一般是python安装目录下的Scripts文件夹
总结
本文主要介绍了socket的简单使用,主要就是server端与client端的通信(连接、发送信息),后面有更高级的应用,再继续更新文章。
Python系列文章目录
Python入门第01篇(Python安装与开发工具)-CSDN博客
Python入门第02篇(pip、字符串、方法、json、io操作)_python json pip-CSDN博客
Python入门第03篇(异常处理、dotenv)_load_dotenv()-CSDN博客
Python入门第04篇(sqlite数据库相关)_cmd中使用sqlite-CSDN博客
Python入门第05篇(爬虫相关)-CSDN博客
Python入门第06篇(FastApi、uvicorn)_fastapi uvicorn-CSDN博客
Python入门第09篇(conda虚拟环境)-CSDN博客
Flask开发webapi初步及过程问题探究_flask webapi-CSDN博客
Linux下docker运行python_linux docker运行python-CSDN博客