zoukankan      html  css  js  c++  java
  • 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)
  • 相关阅读:
    垂死挣扎还是涅槃重生 -- Delphi XE5 公布会归来感想
    自考感悟,话谈备忘录模式
    [每日一题] OCP1z0-047 :2013-07-26 alter table set unused之后各种情况处理
    Java实现 蓝桥杯 算法提高 p1001
    Java实现 蓝桥杯 算法提高 拿糖果
    Java实现 蓝桥杯 算法提高 拿糖果
    Java实现 蓝桥杯 算法提高 求arccos值
    Java实现 蓝桥杯 算法提高 求arccos值
    Java实现 蓝桥杯 算法提高 因式分解
    Java实现 蓝桥杯 算法提高 因式分解
  • 原文地址:https://www.cnblogs.com/wangmengzhu/p/7440459.html
Copyright © 2011-2022 走看看