Laden...

Socket: UDP-Broadcasts

Erstellt von schnecke vor 18 Jahren Letzter Beitrag vor 18 Jahren 1.494 Views
S
schnecke Themenstarter:in
223 Beiträge seit 2005
vor 18 Jahren
Socket: UDP-Broadcasts

Hi zusammen...

ich beschäftige mich gerade mit Sockets...worin ich auch recht neu bin... vielleicht kommen auch daher meine Probs... aber naja, ich kann mir halt nicht helfen und nach n paar Stunden googlen und testen bin ich mit meinem Latein am Ende. 🙁

Ich möchte per UDP ein Broadcast machen und mir alle NICs, die antworten, anzeigen lassen (also die IP der antwortenden Stellen). Doch das klappt nicht wirklich... mein Code bisher:


IPEndPoint ip= new IPEndPoint( IPAddress.Parse( "192.168.1.255"), 24105); 
Socket socket= new Socket( ip.Address.AddressFamily, SocketType.Dgram, ProtocolType.Udp); 			
socket.SetSocketOption( SocketOptionLevel.Socket, SocketOptionName.Broadcast, 1); 
			
byte[] message= System.Text.Encoding.ASCII.GetBytes( "testnachricht"); 
socket.SendTo( message, message.Length, SocketFlags.None, ip); 

socket.SetSocketOption( SocketOptionLevel.Socket, SocketOptionName.ReceiveTimeout, 1000); 
IPEndPoint sender= new IPEndPoint(IPAddress.Any, 0); 
EndPoint remoteEP= (EndPoint)sender; 
byte[] buffer= new byte[1024]; 			 
try 
{ 
	int empfangen = socket.ReceiveFrom( buffer, buffer.Length, SocketFlags.None, ref remoteEP); 
	Debug.Write("Empfangen: " + empfangen.ToString() );
	sender= (IPEndPoint)remoteEP; 
	Debug.Write( "IP:" + sender.Address.ToString() ); 
} 
catch (Exception e) 
{ 				
	Debug.WriteLine( e.ToString()); 			
} 
socket.Close();			

Ich bekomme immer ein TimeOut... und ich weiß nicht, ob ich generell was falsch mache... oder woran es sonst liegt. Oder muss ich zum Senden und Empfangen zwei verschiedene Sockets benutzen? 🤔