Se intentó acceder a un socket de una manera prohibida por sus permisos de acceso. ¿Por qué?
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);
}
}
Recibo un error al intentar iniciar mi programa:
Se intentó acceder a un socket de una manera prohibida por sus permisos de acceso.
No entiendo por qué... funcionó bien y ahora no.
Estoy transmitiendo con VLC y quiero recibir los paquetes, hacer algunos informes y luego volver a transmitir localmente a un reproductor.
Aceptado
Reiniciar el servicio de red de host en Windows resolvió el problema.
Puede hacer esto con una sesión de administrador de Powershell/Símbolo del sistema ejecutando:
net stop hns
net start hns
O puede hacer esto usando el Administrador de servicios de Windows:
Lo más probable es que el socket esté sostenido por algún proceso. Úselo netstat -o
para encontrar cuál.