Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - UDP Socket c#
Forum - C# / VB.NET - UDP Socket c#

Avatar
jaco94++ (Normal User)
Expert


Messaggi: 203
Iscritto: 22/10/2008

Segnala al moderatore
Postato alle 15:23
Sabato, 01/10/2011
Questo topic è stato chiuso dal moderatore

Salve a tutti!

Volevo sapere come mai inviando in broadcasting un datagram in UDP all'indirizzo 255.255.255.255 il programma si rifiuta di inviarlo mentre se lo invio a 192.168.1.255 lo invia normalmente e tutti gli altri pc sulla mia rete locale ricevono il datagram senza problemi! sto utilizzando questo codice:

Codice sorgente - presumibilmente C# / VB.NET

  1. Socket rq = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
  2.             IPAddress broadcast = IPAddress.Broadcast;
  3.             byte[] buffer = Encoding.ASCII.GetBytes("RQ");
  4.             IPEndPoint endt = new IPEndPoint(broadcast, 9000);
  5.             rq.SendTo(buffer, endt);



Come posso risolvere :-?

PM
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5475
Iscritto: 03/01/2010

Up
1
Down
V
Segnala al moderatore
Postato alle 16:28
Sabato, 01/10/2011
L'errore che ottieni è

"WSAEACCES (10013) - An attempt was made to access a socket in a way that is forbidden by its access permissions.

This error occurs when a broadcast address is used for sendt but the broadcast permission is not set by using setsockopt(SO_BROADCAST)."


quindi devi usare prima una

Codice sorgente - presumibilmente Plain Text

  1. rq.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Broadcast, true);


Molte grazie ora funziona perfettamente ! - jaco94++ - 01/10/11 16:52


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM