码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • python——网络编程


    流程图在这里插入图片描述

    面向连接的套接字

    面向连接的通信提供序列化的、可靠的和不重复的数据交付,而没有记录边界。主要的协议是传输控制协议(TCP);
    TCP套接字,在python中,必须使用SOCK_STREAM作为套接字类型

    tcp的特点

    • 面向连接
      通过双方必须先建立好连接才能进行数据的传输
    • 可靠传输
      TCP采用发送应答机制
      超时重传
      错误校验
      流量控制和阻塞管理

    python 中客户端例子

    import socket
    
    '''
    在 Python 中,if __name__ == '__main__': 是一个常见的结构,用于确保某些代码只有在直接运行这个模块时才会被执行,而在这个模块被作为导入的模块时不会被执行
    
    '''
    if __name__ == '__main__':
        '''
        创建tcp 客服端套接字
        '''
        tcp_client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    
        tcp_client_socket.connect(("10.211.55.6",9090))
    
        send_content = "hello,world,您好"
        send_data = send_content.encode("gbk")
        tcp_client_socket.send(send_data)
    
    

    python 中服务端例子

    可以支持多客户端模式

    import  socket
    import threading
    
    
    def handler_client_request(client_socket,ip_port):
        recv_data = client_socket.recv(1024)
        if recv_data:
            print(recv_data.decode('utf-8'))
            send_content = "测试"
            client_socket.send(send_content.encode('utf-8'))
        else:
            print("客服端下线",ip_port)
        client_socket.close()
    
    
    if __name__ == '__main__':
    
        tcp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        tcp_socket.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,True)
    
        tcp_socket.bind(("",9090))
    
        # 128 表示最大等待建立链接的个数
        tcp_socket.listen(128)
    
        while True:
            new_client,ip_port = tcp_socket.accept()
            sub_thread = threading.Thread(target=handler_client_request, args=(new_client,ip_port))
            sub_thread.start()
    
        tcp_socket.close()
    
    
    
    
  • 相关阅读:
    学习太极创客 — ESP8226 (十一)用 WiFiManager 库配网
    VR全景技术在文化展示与传播中有哪些应用?
    ATF问题二则:EL3可能没有实现吗?&& aarch32中的S-EL1是什么?
    MySQL-数据备份与还原
    猿创征文|【C++游戏引擎Easy2D】炫酷动画来这学,位移动画构造函数让节点执行动画
    面试被吊打!正确打开Redis分布式锁的七种方案,涨见识了
    柔性机械系统分布参数建模及其控制的研究与进展
    elementui 实现树形控件单选
    公积金提取一次需要间隔多长时间
    Java版企业电子招标采购系统源码—企业战略布局下的采购寻源
  • 原文地址:https://blog.csdn.net/weixin_46282323/article/details/139457678
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | 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号