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)
  • 相关阅读:
    CUDA从入门到精通
    [Network] 计算机网络基础知识总结
    第三章 需求工程概论
    jsp学习
    算法——递推算法
    大话设计模式读书笔记--文章汇总
    轻松学SQL Server数据库
    Oracle数据库建表+添加数据练习
    《C#图解教程》 总览
    php发送get、post请求的6种方法简明总结
  • 原文地址:https://www.cnblogs.com/wangmengzhu/p/7440459.html
Copyright © 2011-2022 走看看