2016-09-15 4 views
0

Ich möchte über den folgenden Port Pakete von der folgenden IP-Adresse empfangen. Das Problem ist nach "client.Receive (ref localEp);" In dieser Zeile wird der Code nicht ausgeführt und kann auch nicht debuggen.Fehler beim Debuggen des UDPclient-Clients empfangen

UdpClient client = new UdpClient(); 

IPEndPoint localEp = new IPEndPoint(IPAddress.Any, 17000); 
client.Client.Bind(localEp); 

IPAddress multicastaddress = IPAddress.Parse("224.0.0.10"); 
client.JoinMulticastGroup(multicastaddress); 

while (true) 
{ 
    Byte[] data = client.Receive(ref localEp); 
    string strData = Encoding.UTF8.GetString(data); 
    Console.WriteLine(strData); 
} 

Ich habe auch diese Ausnahme ScopeId = 'localEp.Address.ScopeId' hat eine Ausnahme vom Typ 'System.Net.Sockets.SocketException' in IPEndPoint localEp. Bitte helfen Sie meinen Code zu korrigieren

UPDATE Die Lösung ist, in meiner Maschine HYPER-V virtuelle Maschine Setup installiert ist, die diese UDP-Daten vom Empfang beschränkt. Ich habe es nur deaktiviert und begann Daten zu empfangen. Um ehrlich zu sein, ich habe keine Ahnung von seinem Verhalten.

+0

vielleicht das Problem ist mit Port 17000. anderen Ports versuchen. –

+0

Ich überprüfte mit einigen anderen Werten und dem Standardwert 0, dasselbe Problem !! :( –

Antwort

1

Zuerst versuchen Msdn Weise Daten von localhost aus einer beliebigen Quelle zu empfangen und dann von anderen Host-Namen:

https://msdn.microsoft.com/en-us/library/system.net.sockets.udpclient(v=vs.110).aspx

// This constructor arbitrarily assigns the local port number. 
    UdpClient udpClient = new UdpClient(17000); 

    udpClient.Connect("127.0.0.1", 17000); 

    // Sends a message to the host to which you have connected. 
    Byte[] sendBytes = Encoding.ASCII.GetBytes("Is anybody there?"); 

    udpClient.Send(sendBytes, sendBytes.Length); 

    //// Sends a message to a different host using optional hostname and port parameters. 
    //UdpClient udpClientB = new UdpClient(); 
    //udpClientB.Send(sendBytes, sendBytes.Length, "AlternateHostMachineName", 17000); 

    //IPEndPoint object will allow us to read datagrams sent from any source. 
    IPEndPoint RemoteIpEndPoint = new IPEndPoint(IPAddress.Any, 0); 

    // Blocks until a message returns on this socket from a remote host. 
    Byte[] receiveBytes = udpClient.Receive(ref RemoteIpEndPoint); 
    string returnData = Encoding.ASCII.GetString(receiveBytes); 
+0

Funktioniert gut mit dem lokalen Host. Ich denke, das Problem ist mit dem Server, der keine Daten sendet. BTW, danke für die Antwort –

+0

Es funktioniert mit dem Empfang von Daten von localhost Server? –

+0

Ja, funktioniert auch wenn der Hyper -V ist aktiviert –

Verwandte Themen