un tentativo è stato fatto per accedere a un socket in un modo per le sue autorizzazioni di accesso. perché?

private void StartReceivingData(string ipAddress, int iPort) { try { if (!_bContinueReciving) { //initializeMainSocket(ipAddress, iPort); _mSocket = new Socket(AddressFamily.InterNetwork, SocketType.Raw, ProtocolType.IP);//<------HERE IS RAISED THE EXCEPTION _mSocket.Bind(new IPEndPoint(IPAddress.Parse(ipAddress), iPort)); // _mSocket.Bind(new IPEndPoint(IPAddress.Loopback, iPort)); _mSocket.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.HeaderIncluded, true); _mSocket.IOControl(IOControlCode.ReceiveAll, new byte[4] { 1, 0, 0, 0 }, new byte[4] { 0, 0, 0, 0 }); //var 1 _mSocket.BeginReceive(_buffReceivedData, 0, _buffReceivedData.Length, SocketFlags.None, new AsyncCallback(OnReceive), null); initializeLocalSocket(); } else { _bContinueReciving = false; _mSocket.Close(); } } catch (Exception exception) { Debug.WriteLine(exception); } } 

Non capisco perché … ha funzionato e ora no. qualcuno potrebbe aiutarmi? Sto trasmettendo in streaming con vlc, e non voglio ricevere i pacchetti, fare alcuni rapporti, e poi riappropriarmi a un giocatore

Molto probabilmente il socket è tenuto da qualche processo. Usa netstat -o per trovare quale.

Ricarica Visual Studio con i privilegi di amministratore. Windows Sockets (WinSock) non consente di creare un socket SocketType.RAW senza amministratore locale. E ricorda che la tua soluzione avrà bisogno di privilegi elevati per funzionare come previsto!

Beh, non capisco nemmeno il colpevole di questo problema. Ma nel mio caso il problema è completamente diverso. Ho provato a eseguire netstat -o o netstat -ab , entrambi mostrano che non c’è alcuna app attualmente in ascolto sulla porta 62434, che è quella che la mia app cerca di ascoltare. Quindi è davvero fonte di confusione per me.

Ho appena provato a pensare a quello che avevo fatto in modo che smettesse di funzionare (funzionava prima). Bene, allora ho pensato alla condivisione Internet che ho fatto sul mio adattatore Ethernet con una LAN virtuale privata (usando Hyper-v in Windows 10). Avevo solo bisogno di distriggersre la condivisione e ha funzionato di nuovo bene.

Spero che questo aiuti qualcun altro ad avere lo stesso problema. E, naturalmente, se qualcuno potrebbe spiegarlo, per favore aggiungi maggiori dettagli nella tua risposta o magari come commento alla mia risposta.

Questo è l’errore che viene restituito quando Windows Firewall blocca la porta (in uscita). Abbiamo un server web rigido, quindi le porte in uscita sono bloccate per impostazione predefinita. Tutto quello che dovevo fare era creare una regola per consentire il numero di porta TCP in wf.msc.

Ho avuto un problema simile ma l’ho risolto modificando le impostazioni del firewall.

Puoi seguire i seguenti passaggi

  1. Vai su “Start” -> “Pannello di controllo”
  2. Clicca su “Windows Firewall” inserisci la descrizione dell'immagine qui

  3. All’interno di Windows Firewall, fare clic su “Consenti a un programma o a una funzionalità tramite Windows Firewall” inserisci la descrizione dell'immagine qui

  4. Ora all’interno di Consenti programmi, fare clic sul pulsante “Cambia impostazioni”. Dopo aver fatto clic sul pulsante Cambia impostazioni, viene abilitato il pulsante “Consenti un altro programma …”. inserisci la descrizione dell'immagine qui

  5. Fai clic sul pulsante “Consenti un altro programma …”, verrà aperta una nuova finestra di dialogo. Scegli i programmi o le applicazioni per cui stai ricevendo l’eccezione del socket e fai clic sul pulsante “Aggiungi”. inserisci la descrizione dell'immagine qui

  6. Fare clic su OK e riavviare il computer.

  7. Prova ad eseguire la tua applicazione (che ha un’eccezione) con diritti amministrativi.

Spero che aiuti.

Pace,

Sunny Makode

Ho iniziato a ricevere un errore molto simile quando il mio computer è passato all’aggiunta di Windows 10 e ho eliminato tutte le mie impostazioni. È stato come lavorare con un nuovo computer, impostare tutto per il primo utilizzo … e poi improvvisamente ho ricevuto questo errore quando il mio codice stava tentando di utilizzare un servizio web.

Ma il vero colpevole e la soluzione nel mio caso era che dovevo controllare l’opzione per l’esecuzione a 64-bit. Questa scelta era stata persa nel mio caso.

Strumenti -> Opzioni -> Progetti e soluzioni -> Progetti Web -> “Utilizza la versione a 64 bit di IIS Express per siti Web e progetti”.