dunque, un mio programma fornito di sniffer per analizzare alcuni pacchetti di dati, funziona perfettamente su Xp mentre su Vista genera la seguente eccezione, incredibilmente NON COMPLETAMENTE GESTITA, nel senso che OLTRE al mio messaggio da eccezione gestita esce anche il messaggio standard di errore di windows e poi il programma crasha. Il messaggio di window è:
System.Net.Sockets.SocketException: Tentativo di accesso al socket con modalità non consentite dalle rispettive autorizzazioni di accesso in System.Net.Sockets.Socket..ctor(AddressFamily addressFamily, SocketType socketType, ProtocolType protocolType)
Questo il messaggio fuori VB.net... nel programma l' errore viene invece generato nella routine di chiusura del Socket Raw:
Try
'Chiude il Sochet Raw
RawSocket.Close(1000)
Catch ex As SocketException
MessageBox.Show("#ClsC4 -" & ex.Message.ToString)
Catch e As Exception
MessageBox.Show("#ClsC5 -" & e.Message.ToString)
End Try
la cosa ancor più strana è che l' eccezione NON E' generata in:
Catch ex As SocketException... perché il messaggio di errore contiene la stringa "#ClsC5 -" !!
Quindi in un certo senso l' errore sembrerebbe ingestibile: non vedo una eccezione relativa all' errore stesso.... e anche se esistesse, come mai scatta anche l' errore di windows, come se l' eccezione non fosse gestita??
Come dare le autorizzazioni (o come ignorare, gestendole, le mancate autorizzazioni)??
Inoltre, cosa ancor più incomprensibile: se mancano le autorizzazioni, per quale motivo l' errore salta fuori solo alla chiusura del Socket, dopo che è stato tranquillamente aperto ed ho sniffato senza problemi??