zoukankan      html  css  js  c++  java
  • udp 的基本使用

    UDP通信
    数据报协议(自带报头)
    没有双向通道 通信类似于发短信

    1.udp协议客户端允许发空
    2.udp协议不会粘包
    3.udp协议服务端不存在的情况下,客户端照样不会报错?
    4.udp协议支持并发
    
    UDP类似于发短信
    TCP类似于打电话
    	
    并发:看起来像同时运行的
    并行:真正意义上的同时运行
    

    udp 的基本使用

    客户端

    import socket
    
    client = socket.socket(type=socket.SOCK_DGRAM)
    # 不需要建立连接  直接进入通信循环
    server_address = ('127.0.0.1',8080)
    while True:
        client.sendto(b'hello',server_address)
        data, addr = client.recvfrom(1024)
        print('服务端发来的数据',data)
        print('服务端的地址',addr)
    

    服务端

    import socket
    
    server = socket.socket(type=socket.SOCK_DGRAM)  # UDP协议
    server.bind(('127.0.0.1',8080))
    # UDP不需要设置半连接池 它也没有半连接池的概念
    
    # 因为没有双向通道  不需要accept  直接就是通信循环
    while True:
        data, addr = server.recvfrom(1024)
        print('数据:',data)  # 客户端发来的消息
        print('地址:',addr)  # 客户端的地址
        server.sendto(data.upper(),addr)
    

    socketserver模块

    import socketserver
    
    class MyServer(socketserver.BaseRequestHandler):
        def handle(self):
            # print('来啦 老弟')
            while True:
                data = self.request.recv(1024)
                print(self.client_address)  # 客户端地址
                print(data.decode('utf-8'))
                self.request.send(data.upper())
    
    if __name__ == '__main__':
        """只要有客户端连接  会自动交给自定义类中的handle方法去处理"""
        server = socketserver.ThreadingTCPServer(('127.0.0.1',8080),MyServer)  # 创建一个基于TCP的对象
        server.serve_forever()  # 启动该服务对象
        
        
       
    import socket
    import time
    
    client = socket.socket(type=socket.SOCK_DGRAM)
    server_address = ('127.0.0.1',8080)
    
    while True:
        client.sendto(b'hello',server_address)
        data,addr = client.recvfrom(1024)
        print(data.decode('utf-8'),addr)
        time.sleep(1)
    
    趁自己还没死 多折腾折腾
  • 相关阅读:
    spring boot1
    部署 OpenStack VirtualBox
    SecureCRT连接虚拟机(ubuntu)配置
    深度优先算法和广度优先算法
    网上学习编程的七个趋势
    AI方向
    sql
    PyQt4入门
    “贪吃蛇”
    SecureCRT 专题
  • 原文地址:https://www.cnblogs.com/lddragon/p/11323928.html
Copyright © 2011-2022 走看看