小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

C# udp組播

 家住天地 2012-05-26
2008-09-15 11:12

UDPClient 類使用 UDP 與網(wǎng)絡(luò)服務(wù)通訊。UdpClient 類的屬性和方法提取某個(gè) Socket 實(shí)例的創(chuàng)建細(xì)節(jié),該示例用于通過(guò) UDP 請(qǐng)求和接收數(shù)據(jù)。
UDP 的優(yōu)點(diǎn)是簡(jiǎn)單易用,并且能夠同時(shí)向多個(gè)地址廣播消息。但由于 UDP 協(xié)議是一個(gè)無(wú)連接協(xié)議,因此發(fā)送到遠(yuǎn)程終結(jié)點(diǎn)的 UDP 數(shù)據(jù)文報(bào)不一定能夠到達(dá),也不一定能夠以發(fā)送的相同順序到達(dá)。使用 UDP 的應(yīng)用程序必須準(zhǔn)備處理丟失的和順序有誤的數(shù)據(jù)文報(bào)。
若要使用 UDP 發(fā)送數(shù)據(jù)文報(bào),必須知道承載所需服務(wù)的網(wǎng)絡(luò)設(shè)備的網(wǎng)絡(luò)地址以及該服務(wù)用于通訊的 UDP 端口號(hào)。Internet 分配號(hào)碼機(jī)構(gòu) (Internet Assigned Numbers Authority, IANA) 定義公共服務(wù)的端口號(hào)(請(qǐng)?jiān)L問 http://www./assignments/port-numbers)。IANA 列表中所沒有的服務(wù)可使用 1,024 到 65,535 這一范圍中的端口號(hào)。
特殊網(wǎng)絡(luò)地址用于支持基于 IP 的網(wǎng)絡(luò)上的 UDP 廣播消息。下面探討的內(nèi)容以 Internet 上使用的 IP 版本 4 地址族作為示例。
IP 版本 4 地址使用 32 位指定網(wǎng)絡(luò)地址。對(duì)于使用 255.255.255.0 網(wǎng)絡(luò)掩碼的 C 類地址,這些位被分為四個(gè)八位字節(jié)。當(dāng)以十進(jìn)制數(shù)表示時(shí),這四個(gè)八位字節(jié)構(gòu)成熟悉的以點(diǎn)分隔的四部分表示法,如 192.168.100.2。前兩個(gè)八位字節(jié)(此示例中為 192.168)構(gòu)成網(wǎng)絡(luò)號(hào);第三個(gè)八位字節(jié) (100) 定義子網(wǎng);最后一個(gè)八位字節(jié) (2) 是主機(jī)標(biāo)識(shí)符。
將 IP 地址的所有位均設(shè)置為 1(即 255.255.255.255)可構(gòu)成有限的廣播地址。將 UDP 數(shù)據(jù)文報(bào)發(fā)送到此地址可將消息傳遞到該廣播網(wǎng)絡(luò)上的任何主機(jī)。由于路由器從不轉(zhuǎn)發(fā)發(fā)送到此地址的消息,因此只有已連接的網(wǎng)絡(luò)上的主機(jī)才可看到這些廣播。
通過(guò)將部分地址的所有位全都設(shè)置為 1,可以將廣播定向到特定的網(wǎng)絡(luò)部分。例如,若要將廣播發(fā)送到以 192.168 打頭的 IP 地址標(biāo)識(shí)的網(wǎng)絡(luò)上的所有主機(jī),請(qǐng)將地址的子網(wǎng)和主機(jī)部分全都設(shè)置為 1,如 192.168.255.255。若要將廣播限制在單個(gè)子網(wǎng),則只將主機(jī)部分設(shè)置全都為 1,如 192.168.100.255。
UdpClient 類可向任何網(wǎng)絡(luò)廣播地址廣播,但它無(wú)法偵聽發(fā)送到網(wǎng)絡(luò)的廣播。必須使用 Socket 類才能偵聽網(wǎng)絡(luò)廣播。
當(dāng)所有接收者都位于單個(gè)網(wǎng)絡(luò)中時(shí),或者當(dāng)許多客戶端需要接收廣播時(shí),廣播地址將起作用。當(dāng)接收者為網(wǎng)絡(luò)的一小部分時(shí),應(yīng)將消息發(fā)送到多路廣播組,在那里只有加入此組的客戶端才能接收到消息。范圍從 224.0.0.2 到 244.255.255.255 的 IP 地址保留為主機(jī)組地址。IP 號(hào) 224.0.0.0 被保留,而 224.0.0.1 分配給所有 IP 主機(jī)的固定組。

下面的示例使用 UdpClient 偵聽端口 11000 上的多路廣播地址組 224.168.100.2 的 UDP 數(shù)據(jù)文報(bào)廣播。它接收消息字符串并將消息寫入控制臺(tái)。

[C#]
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;

public class UDPMulticastListener
{
private static readonly IPAddress GroupAddress =
IPAddress.Parse("224.168.100.2");
private const int GroupPort = 11000;

private static void StartListener()
{
bool done = false;
UdpClient listener = new UdpClient();
IPEndPoint groupEP = new IPEndPoint(GroupAddress,GroupPort);

try {
listener.JoinMulticastGroup(GroupAddress);
listener.Connect(groupEP);
while (!done)
{
Console.WriteLine("Waiting for broadcast");
byte[] bytes = listener.Receive( ref groupEP);
Console.WriteLine("Received broadcast from {0} :\n {1}\n",
groupEP.ToString(),
Encoding.ASCII.GetString(bytes,0,bytes.Length));
}
listener.Close();
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
}

public static int Main(String[] args)
{
StartListener();
return 0;
}
}
下面的示例使用 UdpClient 將 UDP 數(shù)據(jù)文報(bào)發(fā)送到端口 11000 上的多路廣播地址組 224.268.100.2。它發(fā)送命令行上指定的消息字符串。

[C#]
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;

public class UDPMulticastSender
{
private static IPAddress GroupAddress =
IPAddress.Parse("224.168.100.2");
private static int GroupPort = 11000;

private static void Send( String message)
{
UdpClient sender = new UdpClient();
IPEndPoint groupEP = new IPEndPoint(GroupAddress,GroupPort);

try
{
Console.WriteLine("Sending datagram : {0}", message);
byte[] bytes = Encoding.ASCII.GetBytes(message);
sender.Send(bytes, bytes.Length, groupEP);
sender.Close();
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
}

public static int Main(String[] args)
{
Send(args[0]);
return 0;
}
}

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多