• python网络编程(三)


    udp网络通信过程

    udp应用:echo服务器

    参考代码

    #coding=utf-8
    
    from socket import *
    
    #1. 创建套接字
    udpSocket = socket(AF_INET, SOCK_DGRAM)
    
    #2. 绑定本地的相关信息
    bindAddr = ('', 7788) # ip地址和端口号,ip一般不用写,表示本机的任何一个ip
    udpSocket.bind(bindAddr)
    
    num = 1
    while True:
    
        #3. 等待接收对方发送的数据
        recvData = udpSocket.recvfrom(1024) # 1024表示本次接收的最大字节数
    
        #4. 将接收到的数据再发送给对方
        udpSocket.sendto(recvData[0], recvData[1])
    
        #5. 统计信息
        print('已经将接收到的第%d个数据返回给对方,内容为:%s'%(num,recvData[0]))
        num+=1
    
    
    #5. 关闭套接字
    udpSocket.close()

    udp应用:聊天室

    #coding=utf-8
    
    from socket import *
    from time import ctime
    
    #1. 创建套接字
    udpSocket = socket(AF_INET, SOCK_DGRAM)
    
    #2. 绑定本地的相关信息
    bindAddr = ('', 7788) # ip地址和端口号,ip一般不用写,表示本机的任何一个ip
    udpSocket.bind(bindAddr)
    
    while True:
    
        #3. 等待接收对方发送的数据
        recvData = udpSocket.recvfrom(1024) # 1024表示本次接收的最大字节数
    
        #4. 打印信息
        print('【%s】%s:%s'%(ctime(),recvData[1][0],recvData[0]))
    
    
    #5. 关闭套接字
    udpSocket.close()

    udp总结

    1. udp是TCP/IP协议族中的一种协议能够完成不同机器上的程序间的数据通信

    2. udp服务器、客户端

    • udp的服务器和客户端的区分:往往是通过请求服务提供服务来进行区分
    • 请求服务的一方称为:客户端
    • 提供服务的一方称为:服务器

    3. udp绑定问题

    • 一般情况下,服务器端,需要绑定端口,目的是为了让其他的客户端能够正确发送到此进程
    • 客户端,一般不需要绑定,而是让操作系统随机分配,这样就不会因为需要绑定的端口被占用而导致程序无法运行的情况
  • 相关阅读:
    3月18
    线段树求后继+环——cf1237D
    排序+stl——cf1237C
    思维+双指针+环——cf1244F
    模拟+双指针——cf1244E
    树的性质——cf1244D
    数学思维——cf1244C
    树的直径变形——cf1238F
    ac自动机暴力跳fail匹配——hdu5880
    状态压缩dp增量统计贡献——cf1238E(好题)
  • 原文地址:https://www.cnblogs.com/leecoffee/p/9035423.html
Copyright © 2020-2023  润新知