dotnet-snippets.de
Willkommen bei dotnet-snippets.de! Snippet hinzufügen Login Registrieren
Snippets in der Datenbank: 1405 | Anzahl registrierter User: 1436 | Besucher online: 47
Hauptmenü
Home
Top Ten
Zufälliger Snippet
Tech-Ed-Gewinnspiel
FAQs
.NET Community
dotnet-forum.de
dotnet-kicks.de
Social

RSS Feeds
Rss Alle Snippets
Rss C#
Rss VB.NET
Rss C++
Rss ASP.NET
Partner
Partner von Codezone.de


Member of Microsoft Community Leader/Insider Program (CLIP)

Broadcast senden


Autor: pro
Sprache: C#
Bewertung: 8,2
(1 Bewertung)

Anzahl der Aufrufe: 8864
  

Beschreibung:

Mit den folgenden Methoden kann man einen Broadcast im lokalen Netzwerk senden. Um mit diesen Methoden arbeiten zu können, müssen folgende Bibliotheken eingebunden werden :

- System.Net
- System.Net.Sockets

Weiterführende Literatur zum Verständnis :

- http://de.wikipedia.org/wiki/Socket
- http://de.wikipedia.org/wiki/Broadcast


Abgelegt unter: Broadcast, Sockets, Socket, Broadcast senden, Netzwerk.



C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
namespace Networking.Broadcast
{
public class BroadCast
{
   /// <summary>
        /// Methode, um einen Broadcast im lokalen Netzwerk abzusetzen
        /// </summary>
        /// <param name="data">Daten, welche beim Broadcast mitgesendet werden</param>
        /// <param name="port">Zielport</param>
        public void BroadCastSend(byte[] data, int port)
        {
            this.BroadCastSend(data, IPAddress.Broadcast, port);
        }

        /// <summary>
        /// Methode, um einen Broadcast im lokalen Netzwerk abzusetzen
        /// </summary>
        /// <param name="data">Daten, welche beim Broadcast mitgesendet werden</param>
        /// <param name="ip">Protokollart</param>
        /// <param name="port">Zielport</param>
        public void BroadCastSend(byte[] data, IPAddress ip, int port)
        {
            //Socket definieren
            Socket bcSocket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
            
            //EndPoint definieren bzw. Ziel des Broadcastes
            IPEndPoint iep1 = new IPEndPoint(ip, port);

            //Optionen auf den Socket binden
            bcSocket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Broadcast, 0);
            
            //Broadcast senden
            bcSocket.SendTo(data, iep1);

            //Für Debug - Zwecke
            //Console.WriteLine("Broadcast sent : " + ip.ToString() + " : " + port.ToString());

            //Socket schliessen, nach erfolgreichem Senden des Broadcastes
            bcSocket.Close();
        }
}

}
Sie haben Fragen zu diesem Snippet oder brauchen Hilfe bei der .NET Entwicklung?
Freundliche und kompetente Entwickler helfen Ihnen gern weiter im Forum für .NET Entwicklung.



Kommentare:
(Zum Schreiben von Kommentaren bitte anmelden.)

Niklas P. schrieb am:  05.01.2009 19:58:57

Beim korrekten Ausführen der Funktion wird eine Ausnahme ausgelöst (Typ: SocketException, Nachricht: Der Zugriff auf einen Socket war aufgrund der Zugriffsrechte des Sockets unzulässig). Dies ist auf das Argument "0" im Funktionsaufruf in der 30. Zeile zurückzuführen.

Lösung: dieses Argument einfach durch "1" ersetzen, damit das Socket Zugriffsrechte erhält.


schlecht sehr gut
1 2 3 4 5 6 7 8 9 10
Nur angemeldete User können Snippets bewerten.