2009-04-02 12 views
0

Ok, um auszustrahlen, ich habe einen Socket erstellt:BROADCASTING

notifySock = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); 

Und den Host-Namen meines Computers auf allen anderen Computern mit dem gleichen LAN verbunden zu schicken, ich bin mit dem Send (Byte [] buffer) Methode:

notifySock.Send(hostBuffer); 

hostBuffer enthält den Hostnamen meines Computers.

Da ich jedoch einen "Datagramm" Socket-Typ verwende, muss ich die Daten formatieren, die ich senden muss. Wenn möglich, geben Sie bitte den Code ein, den ich zwischen den beiden Codezeilen eingeben muss, um einen Socket zu erstellen und die Daten zu senden.

Antwort

1

Für die Übertragung von einer Benutzeranwendung wird normalerweise UDP verwendet. Sie müssen ein geeignetes Protokoll entwerfen, d. H. Eine Möglichkeit, die Informationen zu formatieren, die Sie an das UDP-Paket senden möchten.

+0

ok ich bekam zu hören. Ich benutze einen Datagramm socketType, für den UDP funktioniert. Ich habe jetzt einen kleinen Zweifel. Zwischen dem Erstellen des Sockets vom Typ Datagramm und dem Senden der Daten, was ist der Code, den ich schreiben muss, um die Nachricht zu senden. Erstellen eines IPEndPoint vom Typ Broadcast ist in Ordnung, aber wie verwende ich es ?? – Avik

0

In Ihrem Beispiel haben Sie nicht angegeben, an wen Sie senden. Sie müssen so etwas wie:

UdpClient notifySock = new UdpClient(endPoint); 
notifySock.Send(buffer, buffer.Length, new IPEndPoint(IPAddress.Broadcast, 1234)); 

Für die anderen Hosts in Ihrem LAN zu erhalten, dass sie auf den UDP-Port 1234.

+0

Das ist das .. Das neue Problem hier ist, dass es eine Empfangs-Methode innerhalb der UDPClient-Klasse gibt. Allerdings ist einer seiner Parameter eine Referenzvariable vom Typ IPEndPoint..Aber wenn ich eine Broadcast-Nachricht hören muss, brauche ich nicht that..What ist die Methode, die ich anrufen muss, um eine gesendete Nachricht zu empfangen. – Avik