使用UDP非連線式傳送接收資料(聊天室模式)

2021-04-08 14:16:51 字數 1577 閱讀 5387

udp非連線式通訊在.net中可以很方便的實現出來。

大致原理:

使用udpclient通過指定遠端機的ip和埠傳送資料到遠端機,實現起來很簡單,主要**如下:

system.net.sockets.udpclient udp = new system.net.sockets.udpclient();

udp.connect("192.168.0.102", 12000); //連線到指定主機名(我在這裡直接使用ip)和埠的遠端機

//將文字框的字串內容轉換為位元組陣列後儲存在位元組陣列b中

byte

b=system.text.encoding.utf8.getbytes(textbox2.text);

try

catch

(exception ex)

//關閉updclient

udp.close();

接收的時候同樣也很方便,首先定義乙個全域性的udpclient但這時候不要建立例項。當formload的時候建立udpclient例項,建立例項時指定本地的通訊埠(該埠就是傳送的時候做指定的遠端機埠),之後需要建立乙個新的執行緒來執行資料的接收,這一點非常重要,由於udpclient是非連線的,因此接收端在建立好乙個udpclient的並執行接收後,接收的執行緒將一直在udpclient所指定的埠等待傳送過來的資料,這時候如果使用和應用程式同樣的現成將造成應用程式執行緒看上去死掉了,所以必須另開乙個執行緒來執行等待資料的工作。

接收段**如下:

using

system;

using

system.drawing;

using

system.collections;

using

system.componentmodel;

using

system.windows.forms;

namespace

**artclient

///

///清理所有正在使用的資源。

///

protected

override

void dispose( bool disposing )

}

base.dispose( disposing );

}

#region

windows 窗體設計器生成的**

///

///

設計器支援所需的方法 - 不要使用**編輯器修改

///

此方法的內容。

///

private

void initializecomponent()

#endregion

private

void button1_click(object sender, system.eventargs e)

private

void udpclient_load(object sender, system.eventargs e)

//當前文中的執行緒啟動時執行

void listen()

}

} }

Python 使用 UDP方式傳送接收資料

前言 由於在專案中需要使用udp進行通訊,經過學習查詢資料實現了在同一臺電腦上自發自收功能,現在分享 如下,如有問題,歡迎指正。此 亦可以延伸其他功能。執行系統 ubuntu18.04 執行環境 python3.6.9 1 自動獲取本地ip位址 def gethostip try socke soc...

C 接收和傳送UDP資料

除了點對點,通常udp資料的傳遞方式有兩種,一種是broadcast,一種是multicast。中文一般把它們翻譯作廣播和組播。前者是簡單的在區域網裡面廣播 後者是借助路由器將資料傳送到包括英特網在內的任何多個位址。在c 裡面,處理udp通訊最簡單的方法就是使用udpclient。具體使用方法我也不...

udp網路程式 傳送 接收資料

建立乙個基於udp的網路程式流程很簡單,具體步驟如下 建立客戶端套接字 傳送 接收資料 關閉套接字 如下 coding utf 8 from socket import 1.建立udp套接字 udp socket socket af inet,sock dgram 2.準備接收方的位址 192.16...