13.socket編程 - UDP

服務(wù)端:
  1. ss = socket()創(chuàng)建一個(gè)服務(wù)器套接字
  2. ss.bind() 綁定服務(wù)器套接字
inf_loop:                                # 服務(wù)器無限循環(huán)
      cs = ss.recvfrom() 或者ss.sendto()  # 與客戶端對(duì)話
ss.close()                               # 關(guān)閉服務(wù)器套接字
客戶端:
  1. cs = socket() 創(chuàng)建一個(gè)客戶端套接字
comm_loop:                                # 客戶端通訊循環(huán)
      cs.recvfrom() 或者cs.sendto()  # 與客戶端對(duì)話
cs.close()                               # 關(guān)閉服務(wù)器套接字

服務(wù)端代碼實(shí)現(xiàn):

from socket import *

ip_port = ('127.0.0.1', 8080)
buffer_size = 1024

udp_server = socket(AF_INET, SOCK_DGRAM) # 數(shù)據(jù)報(bào)
udp_server.bind(ip_port)

while True:
    data = udp_server.recvfrom(buffer_size)
    print(data)

客戶端代碼實(shí)現(xiàn):

from socket import *

ip_port = ('127.0.0.1', 8080)

udp_client = socket(AF_INET, SOCK_DGRAM) # 數(shù)據(jù)報(bào)

while True:
    udp_client.sendto('hello udp'.encode('utf-8'), ip_port)


基于UDP實(shí)現(xiàn)NTP服務(wù)

服務(wù)端:

from socket import *
import time
ip_port=('127.0.0.1',8080)
buffer_size=1024

udp_server=socket(AF_INET,SOCK_DGRAM) #數(shù)據(jù)報(bào)
udp_server.bind(ip_port)

while True:
    data,addr=udp_server.recvfrom(buffer_size)
    print(data)

    if not data:
        fmt='%Y-%m-%d %X'
    else:
        fmt=data.decode('utf-8')
    back_time=time.strftime(fmt)

    udp_server.sendto(back_time.encode('utf-8'),addr)

客戶端:

from socket import *

ip_port = ('127.0.0.1', 8080)
buf_size=1024
udp_client = socket(AF_INET, SOCK_DGRAM) # 數(shù)據(jù)報(bào)

while True:

    msg = input("請(qǐng)輸入發(fā)送內(nèi)容")
    udp_client.sendto(msg.encode('utf-8'), ip_port)

    data, addr = udp_client.recvfrom(buf_size)
    print("ntp服務(wù)器的標(biāo)準(zhǔn)時(shí)間是", data.decode("utf-8"))

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,537評(píng)論 19 139
  • 網(wǎng)絡(luò)中進(jìn)程之間如何通信 為了方便大家獲取源代碼,可以移步這里,GitHub源代碼 進(jìn)程通信的概念最初來源于單機(jī)系統(tǒng)...
    batbattle閱讀 14,245評(píng)論 1 5
  • 1.套接字 兩個(gè)端點(diǎn)的程序之間的“信息通道”。程序可能分布在不同的計(jì)算機(jī)上(通過網(wǎng)絡(luò)連接),通過套接字相互發(fā)送信息...
    飛鳥無聲閱讀 285評(píng)論 0 0
  • 愛是一種癮 癮的實(shí)質(zhì)是依賴 依賴的實(shí)質(zhì)是軟弱 自由和野心的年代 愛是膚淺的 軟弱是可憎的 當(dāng)世界只剩下野心和自由 ...
    西城的北閱讀 245評(píng)論 0 0
  • 最近沸沸揚(yáng)揚(yáng)的江歌事件持續(xù)了很多天,熱心的網(wǎng)友鼎力相助,陪伴著孤獨(dú)無助的母親等待開庭的日子。對(duì)于目前來說,是煎熬,...
    一卉子閱讀 818評(píng)論 0 0

友情鏈接更多精彩內(nèi)容