日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python socket之udp说明

發布時間:2023/12/9 python 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python socket之udp说明 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

UDP方式

UDP 號稱無連接傳輸,全然沒有TCP那么復雜,三次握手,錯誤重傳之類的機制都沒有,發的只管發,收得只管收,收到沒有?不知道,順序不對怎么辦?不管!就是 這樣,但是速度就要比TCP高得多了。在對數據幀要求不是很高的地方,這確實是很好用的,比如網絡上的視頻傳輸,音頻傳輸等。

server端

  • 建立數據報形式的socket

  • 公開一個端口,一邊客戶端連接

  • 開始接收數據

  • 例:udpserver.py


    #!/usr/bin/python27
    #_*_ encoding=utf-8 _*_

    import socket

    ip_port = ('0.0.0.0',9998)
    sk = socket.socket(socket.AF_INET,socket.SOCK_DGRAM,0)

    sk.bind(ip_port)


    flag = True

    while flag:
    ??? data,address = sk.recvfrom(1024)
    ??? print(data,address)
    ??? if data == 'exit':
    ??????? flag = False
    ??? elif data == '0':
    ??????? sk.sendto('0 ni mei...',address)
    ??? elif data.find('nihao') >= 0 :
    ??????? sk.sendto('hello,baby,nihao',address)
    ??? elif data.find('sb') >= 0 :
    ??????? sk.sendto('sb,to you',address)
    ??? else:
    ??????? sk.sendto('input exit to exit',address)

    sk.close()


    ?需要注意的是,server中address元組中的引號表示可以接受任何地址來的數據報,TCP例子中的則表示可以接受任意地址發起的連接

    client端

  • 新建一個數據報socket

  • 收發數據


  • udpclient.py


    #_*_ encoding=utf-8 _*_

    import socket

    ip_port = ('127.0.0.1',9998)
    sk = socket.socket(socket.AF_INET,socket.SOCK_DGRAM,0)
    while True:

    ??? inp = raw_input('請輸入:')
    ??? if inp == 'exit':
    ??????? break
    ??? sk.sendto(inp,ip_port)
    ??? data,address = sk.recvfrom(1024)
    ??? print(data,address)
    ?? ?
    sk.close()



    轉載于:https://blog.51cto.com/wushank/1665266

    總結

    以上是生活随笔為你收集整理的python socket之udp说明的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。