使用 UDP 資料報傳送訊息

2021-10-25 03:27:03 字數 885 閱讀 6977

使用 udp 資料報傳送短的文字訊息實現是很簡單的並且提供可乙個非常輕量級的訊息傳遞通道。但是這種模式有很大的缺陷,就是不保證的資料的可靠性,有可能會存在丟包的情況,甚至嚴重的情況就是伺服器不可用的時候,會完全丟失你的訊息。不過這個任務會在有些情況下十分有作用:

你不關心訊息是否丟失;

你不想要終止程式只是因為訊息無法傳遞;

server.py

import socket

port = 8081

s = socket.socket(socket.af_inet, socket.sock_dgram)

s.bind(("", port))

print "waiting on port:", port

while 1:

data, addr = s.recvfrom(1024)

print data

---client.py

import socket

port = 8081

host = "localhost"

s = socket.socket(socket.af_inet, socket.sock_dgram)

s.bind(("", 0))

s.sendto("holy guido! it's working.", (host, port))

還有乙個提醒事項,不要用上面的程式傳送大量的資料報,尤其是在 windows 上。要是想要傳送大的訊息的話,你可以這樣做:

bufsize = 1024

while msg:

s.sendto(msg[:bufsize], (host, port))

msg = msg[bufsize:]

VC 實現UDP資料報傳送

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!請見 include include 定義了ip hdrincl cinitsock thesock 計算udp偽頭校驗和。udp校驗和基於如下幾個域 源ip位址 目的ip位址 8位0域 8位協議域 16位udp長度 16位源埠號 16位目的埠號 ...

udp傳送廣播訊息

import socket if name main 建立udpsocket udp socket socket.socket socket.af inet,socket.sock dgram 設定socket選項,開啟傳送廣播訊息的功能 1.sol socket 當前socket 2.so bro...

winpcap使用 傳送資料報

傳送資料報是winpcap的擴充套件功能,並不是libpcap本身具備的,所以不能工作在linux下。利用pcap sendpacket 函式可以傳送單個資料報,其函式原型為 int pcap sendpacket pcap t p,u char buf,int size 說明 該函式可以傳送乙個原...