Anschließen von zwei UDP-clients auf einem port (Senden und Empfangen)
Habe ich versucht den Vorschlag von diese Frage mit sehr wenig Erfolg.
Bitte... jede Hilfe wird sehr geschätzt!
Hier ist mein code:
static void Main(string[] args)
{
IPEndPoint localpt = new IPEndPoint(IPAddress.Any, 6000);
UdpClient udpServer = new UdpClient(localpt);
udpServer.Client.SetSocketOption(
SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);
UdpClient udpServer2 = new UdpClient();
udpServer2.Client.SetSocketOption(
SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);
udpServer2.Client.Bind(localpt); //<<---------- Exception here
}
- Welche exception bekommst du?
- Die exception-message, die ich erhalte ist: "es wurde versucht, Zugriff auf einen socket in a way forbidden by its access permissions"
- Hat Ihr
udpServer
Instanz werfen Sie die gleiche Ausnahme, wenn Sie versuchen, binden Sie es? - Erscheint nicht, dass Sie nach dem gleichen code-Beispiel, das wurde vorgestellt in dem link in deiner Frage.. ich sehe die IP-Adresse.Jeder, 6000, aber was ist mit UdpClient udpServer2 = new UdpClient(5000); und warum sind Sie nicht einwickeln Dinge wie diese in einen Try{} catch{}
- Wenn ich mich nicht Irre ist es schon gebunden, wenn gebaut mit einem Endpunkt. Auf jeden Fall habe ich versucht zu tun: udpServer.Client.Bind(localpt); rechts nach der Einstellung der socket-option und hat eine andere Ausnahme Meldung: "es wurde Ein ungültiges argument wurde angegeben"
- Der code in den try-catch in der original-post ist nicht der richtige Weg, es zu tun. Es sagt KABOOM nächsten, wo dieser code löst eine Ausnahme aus. Ich wusste nicht, wickeln Sie es mit einem versuchen zu fangen, denn dies ist nur für die Buchung es hier.
- Ok kein problem..
- Haben Sie schaute auf die MSDN-Website, die Sie verbinden ein bisschen anders passoing der domainName, port - msdn.microsoft.com/en-us/library/... Für Fehler, schaut Euch diese 2 links msdn.microsoft.com/en-us/library/windows/desktop/... | msdn.microsoft.com/en-us/library/windows/desktop/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Setzen Sie die socket-option vor der Bindung.
Oder ein illustratives Beispiel:
Bind
auflocalpt
undReceive
aufinEndPoint
, ist es eine andere? (Wenn ichReceive
auflocalpt
nichts scheint zu brechen)Blickte ich deine Fehlermeldung, und das erklärt, was der Fehler ist und warum es passiert ist.
Hier ist die genaue Fehlermeldung und Grund WSAEACCES 10013 (MSDN)
Sogar ändern Sie Ihren code so, dass ich-pass-in eine IP-Adresse ich die gleiche Fehlermeldung, es scheint, dass Sie kann nicht binden an den gleichen port und nur einen port verwendet werden kann
hier ist der Beispiel-code, den ich verwendet dein Beispiel und Verändert es zu erfassen, meine ip von meinem Rechner..
dadurch wird die Ausnahme auf die Bind () - Methode.. sorry.
Lösen WSAEACCESS 10013 (MSDN) Ausnahme, in der die UDP-Anwendung, die Sie versuchen können,