• Python__基于udp的套接字


    udp是无链接的,先启动哪一端都不会报错

    udp服务端

    1 ss = socket()   #创建一个服务器的套接字
    2 ss.bind()       #绑定服务器套接字
    3 inf_loop:       #服务器无限循环
    4     cs = ss.recvfrom()/ss.sendto() # 对话(接收与发送)
    5 ss.close()                         # 关闭服务器套接字

    udp客户端

    cs = socket()   # 创建客户套接字
    comm_loop:      # 通讯循环
        cs.sendto()/cs.recvfrom()   # 对话(发送/接收)
    cs.close()                      # 关闭客户套接字
     1 客户端
     2 from socket import *
     3 cs = socket(AF_INET,SOCK_DGRAM)
     4 while True:
     5     msg = input('>>: ').strip()
     6     cs.sendto(msg.encode('utf-8'),('127.0.0.1',8080))
     7     data,server_addr = cs.recvfrom(1024)
     8     print(data.decode('utf-8'))
     9 服务端
    10 from socket import *
    11 ss = socket(AF_INET,SOCK_DGRAM)
    12 ss.bind(('127.0.0.1',8080))
    13 while True:
    14     data,client_addr = ss.recvfrom(1024)
    15     ss.sendto(data.upper(),client_addr)
    udp套接字的简单示例

    基于udp实现qq通信

    客户端
    #Author:汪梦竹
    #coding:utf-8
    #基于udp的套接字通信
    import socket
    BUFSIZE = 1024
    udp_client_socket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
    qq_name_dic = {
        '张三':('127.0.0.1',8080),
        '李四':('127.0.0.1',8080),
        '王五':('127.0.0.1',8080)
    }
    while True:
        qq_name = input('请选择聊天对象: ').strip()
        while True:
            msg = input('请输入消息: ').strip()
            udp_client_socket.sendto(msg.encode('utf-8'),qq_name_dic[qq_name])
            back_msg,addr = udp_client_socket.recvfrom(1024)
            print('来自[%s:%s]的一条信息:33[45m%s33[0m'%(addr[0],addr[1],back_msg.decode('utf-8')))
    udp_client_socket.close()
    服务端
    #Author:汪梦竹
    #coding:utf-8
    #基于udp的套接字通信
    from socket import *
    ip_port = ('127.0.0.1',8080)
    udp_server_socket = socket(AF_INET,SOCK_DGRAM)
    udp_server_socket.bind(ip_port)
    while True:
        qq_msg,addr = udp_server_socket.recvfrom(1024)
        print('来自[%s:%s]的一条信息:33[45m%s33[0m'%(addr[0],addr[1],qq_msg.decode('utf-8')))
        back_msg = input('回复消息: ').strip()
        udp_server_socket.sendto(back_msg.encode('utf-8'),addr)
  • 相关阅读:
    Tomcat 7 简单定制
    Tomcat 启动卡在 Root WebApplicationContext: initialization completed in
    nacos 1.1.x 集群部署笔记
    ERROR 1044 (42000): Access denied for user 'root'@'localhost'
    logrotate 不生效
    Keepalived + Haproxy + PXC 理论篇
    Percona MongoDB 4 搭建副本集
    装饰器模式
    上拉电阻和下拉电阻
    Arduino基本数据类型
  • 原文地址:https://www.cnblogs.com/wangmengzhu/p/7440459.html
Copyright © 2020-2023  润新知