国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

.NET中應用程序內共享UdpClient聯(lián)機的實現(xiàn)方法

2024-07-10 12:45:35
字體:
來源:轉載
供稿:網(wǎng)友

原始碼下載: MutualUdpClientSample_jb51net.rar

 

在開發(fā)與遠程設備通訊的系統(tǒng)時,為了提高數(shù)據(jù)傳輸?shù)男剩3x擇UDP這個通訊協(xié)議來作為數(shù)據(jù)傳輸?shù)拿浇椤6?.NET framework中所提供的UdpClient對象,可以幫助開發(fā)人員依照系統(tǒng)需求開啟UDP套接字點,快速建立UDP聯(lián)機來提供與遠程設備通訊的功能。

 

 

這個系統(tǒng)架構下當增加一個不同種類的遠程設備時,必須要提供一個不同的UDP套接字點,才能用來提供與不同種類遠程設備通訊的功能,在遠程設備種類越來越多時,系統(tǒng)所需要的UDP套接字點就會依照遠程設備種類而增加。

 

 

在遠程設備種類越來越多的情景中,為了網(wǎng)絡管理考慮會限制系統(tǒng)與遠程設備通訊時,必須統(tǒng)一使用同一個UDP套接字點來與遠程設備通訊,再由封包內容、或是IP地址去判斷實際連接的遠程設備為何。
代碼如下:
class Program
{
    static void Main(string[] args)
    {
        // Receiver
        UdpClient udpClientA = new UdpClient(new IPEndPoint(IPAddress.Parse("127.0.0.1"), 1234));

        UdpClient udpClientB = new UdpClient(new IPEndPoint(IPAddress.Parse("127.0.0.1"), 1234));
    }
}

依照系統(tǒng)需求開發(fā)人員可能寫出上列的程序代碼,直接建立兩個UdpClient對象來開啟同一個UDP套接字點。這段程序代碼內容可以通過編譯程序的檢查,但在按下執(zhí)行之后,就會在Visual Studio之中看到SocketException的例外通知,用來告知開發(fā)人員同一個套接字點只能被開啟一次,使用兩個UdpClient來開啟同一個套接字點是無法執(zhí)行的。

 

有涉略過Design pattern的開發(fā)人員,在遇到資源對象只能有一個實體的情景,會想到套用Singleton Pattern來提供資源對象共享的功能。系統(tǒng)中UdpClient對象所開啟的UDP套接字點,就是屬于這種只能由一個對象所開啟的資源,這個情景中在UdpClient對象上套用Singleton Pattern看起來會是個不錯的選擇。
代碼如下:
class Program
{
    // Singleton
    private static UdpClient _udpClientInstance = null;

    private static UdpClient UdpClientInstance
    {
        get

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 奉新县| 重庆市| 安西县| 常山县| 鸡泽县| 额尔古纳市| 南丰县| 宁波市| 盐津县| 卢龙县| 丹阳市| 颍上县| 德阳市| 乌什县| 长宁区| 新密市| 于都县| 闵行区| 雷山县| 治多县| 得荣县| 阜阳市| 台北市| 轮台县| 墨竹工卡县| 搜索| 德州市| 巨鹿县| 嘉祥县| 平山县| 南通市| 汤阴县| 武隆县| 伽师县| 巴青县| 奉贤区| 佛山市| 虹口区| 大安市| 三亚市| 常宁市|