Python之socket简玩

文章目录

一、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博客

  • 8
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值