码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Python之socket简玩


    文章目录

    一、socket是什么?

    二、使用步骤

    1.server端

    2.client端

    3.pyinstaller打包

    总结

    Python系列文章目录


    前言

    很多时候用到了服务端和客户端的通信,这个时候可能就需要用到socket。

    在此会介绍下socket是什么、server端、client端、pyinstaller打包等内容。


    一、socket是什么?

    socket 是计算机网络编程中的一个重要概念,它提供了一种用于不同计算机进程间通信的机制。在计算机网络中,socket 通常指的是一个端点,用于实现网络通信。
    在 Python 中,socket 库提供了创建和操作 socket 的功能。通过这个库,您可以轻松地实现网络通信,例如创建一个服务器来监听客户端的连接,或者创建一个客户端来连接到服务器。

    二、使用步骤

    1.server端

    1. from socket import *
    2. # 定义服务端
    3. server_socket=socket()
    4. # 绑定地址、端口
    5. server_socket.bind((gethostname(),9999))
    6. # 开始监听
    7. server_socket.listen()
    8. while True:
    9. # 建立客户端连接
    10. client_socket, addr = server_socket.accept()
    11. print('连接地址:', addr)
    12. # 接收客户端发送的数据
    13. data = client_socket.recv(1024)
    14. print('接收数据:', data.decode('utf-8'))
    15. data="测试数据".encode('utf-8')
    16. client_socket.send(data)
    17. while True:
    18. try:
    19. msg=input("请输入:")
    20. if msg=="exit":
    21. break
    22. data=msg.encode('utf-8')
    23. client_socket.send(data)
    24. except:
    25. # 连不上,那就退出
    26. break

    2.client端

    1. from socket import *
    2. server="192.168.1.111"
    3. # 定义客户端
    4. client_socket=socket()
    5. # 连接到服务端
    6. client_socket.connect((server,9999))
    7. # 给服务端发送消息
    8. client_socket.send(b'hello')
    9. try:
    10. # 保持连接并发送/接收数据
    11. while True:
    12. # 接收服务器数据
    13. data = client_socket.recv(1024)
    14. print('接收数据:', data.decode('utf-8'))
    15. # 发送响应(可选)
    16. # 发送响应(编码为字节)
    17. response = '收到数据'.encode('utf-8')
    18. client_socket.send(response)
    19. except KeyboardInterrupt:
    20. # 用户中断,关闭连接
    21. print('退出连接')
    22. client_socket.close()
    23. except Exception as e:
    24. # 处理其他异常
    25. print(f'发生错误: {e}')
    26. 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博客

  • 相关阅读:
    SDN | OpenvSwitch | OVS网桥及流表管理
    多语言在线客服系统源码-自动识别中英环境-私有化部署完美支持跨境电商网站...
    物联网智慧种植农业大棚系统
    MyBatis Generator 代码生成工具
    SpringCore完整学习教程3,入门级别
    TLog轻量级分布式日志标记追踪神器
    5 款漏洞扫描工具:实用、强力、全面(含开源)
    【C++】学习C++STL中的数组——vector
    【VS插件】VS code上的Remote - SSH
    Trie树(字典树)C++详解
  • 原文地址:https://blog.csdn.net/ewqewqqwe/article/details/138171051
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号