zoukankan      html  css  js  c++  java
  • 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绑定问题

    • 一般情况下,服务器端,需要绑定端口,目的是为了让其他的客户端能够正确发送到此进程
    • 客户端,一般不需要绑定,而是让操作系统随机分配,这样就不会因为需要绑定的端口被占用而导致程序无法运行的情况
  • 相关阅读:
    mysql 远程登陆不上
    hdu 5339 Untitled【搜索】
    SqlServer 书目
    passwordauthentication yes
    oracle 11g RAC ocfs2
    Oracle 11g RAC database on ASM, ACFS or OCFS2
    CentOS ips bonding
    Oracle 11g RAC features
    openStack 王者归来之 trivial matters
    openstack windows 2008 img
  • 原文地址:https://www.cnblogs.com/leecoffee/p/9035423.html
Copyright © 2011-2022 走看看