and*_*rew 46 c# sockets video streaming
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);
}
}
Run Code Online (Sandbox Code Playgroud)
我不明白为什么......它有效,现在却没有.有人能帮助我吗?我正在使用vlc进行流式传输,我不会收到数据包,做一些报告,然后在本地重新播放一个播放器
sta*_*ark 52
套接字很可能是由某个进程持有的.使用netstat -o
找出哪一个.
Par*_*rsa 47
我重新启动了此服务:Host Network Service
在 WindowsServices
程序上。它奏效了。
感谢@admin,您可以在 Windows 终端中运行这些命令:
net stop hns
net start hns
Run Code Online (Sandbox Code Playgroud)
小智 39
使用管理员权限重新加载Visual Studio.Windows套接字(WinSock)将不允许您创建没有本地管理员的SocketType.RAW套接字.请记住,您的解决方案需要提升权限才能按预期运行!
Hop*_*ess 17
好吧,我甚至不明白这个问题的罪魁祸首.但就我而言,问题完全不同.我已经尝试过运行,netstat -o
或者netstat -ab
都显示当前没有任何应用程序正在侦听端口62434,这是我的应用程序试图侦听的应用程序.所以这对我来说真的很困惑.
我只是试着想一想我做了什么让它停止工作(之前确实有效).那么我想到了我在以太网适配器上使用私有虚拟局域网(在Windows 10中使用Hyper-v)进行的Internet共享.我只需要关闭共享,它再次正常工作.
希望这有助于其他人遇到同样的问题.当然,如果有人可以解释这一点,请在您自己的答案中添加更多细节,或者作为对我的答案的一些评论.
Dan*_*ose 14
当一个进程使用某个端口时,该端口就不能被其他进程使用。netstat -o
显示进程正在使用的端口。
或者,也可以排除端口的使用。在这种情况下,没有进程可以使用它们。您可以通过以下方式查看列表netsh interface ipv4 show excludedportrange protocol=tcp
Sun*_*nny 10
我遇到了类似的问题,但我通过对防火墙设置进行一些更改来解决它。
您可以按照以下步骤操作
转到“开始”-->“控制面板”
当您单击“允许另一个程序...”按钮时,将出现一个新对话框。选择您收到套接字异常的程序或应用程序,然后单击“添加”按钮。
单击“确定”,然后重新启动计算机。
尝试使用管理权限运行您的应用程序(有例外)。
我希望这有帮助。
我自己也遇到了这个问题,阅读这篇文章后找到了原因:
https://ardalis.com/attempt-made-to-access-socket/
简而言之,当我使用该命令时:
netsh interface ipv4 show excludedportrange protocol=tcp
Run Code Online (Sandbox Code Playgroud)
它显示我尝试使用的端口已被保留;所以我只是选择了另一个端口(一个未保留的端口)并且它起作用了。
当尝试使用dotnet run尝试绑定到端口时启动dotnet Core项目时,遇到了这个问题。
该问题是由于在项目打开的情况下运行Visual Studio 2017实例引起的-我之前曾通过VS启动该项目以进行调试,尽管调试已完成并且该应用程序似乎已关闭,但该项目似乎仍保留在端口上。
关闭Visual Studio实例并运行“ dotnet run”再次解决了该问题。
我正在开发一个连接到 LAN 中的 MQTT 代理的 UWP 应用程序。我遇到了类似的错误。
MQTTnet.Exceptions.MqttCommunicationException: 'An attempt was made to access a socket in a way forbidden by its access permissions [::ffff:xxx.xxx.xxx.xxx]:1883'
ExtendedSocketException: An attempt was made to access a socket in a way forbidden by its access permissions [::ffff:xxx.xxx.xxx.xxx]:1883
Run Code Online (Sandbox Code Playgroud)
小智 5
原因很可能是由于 Windows 更新限制了对 Windows 计算机上某些端口的访问。您可以通过运行以下命令查看从用户中排除的端口列表:netsh interface ipv4 show excludedportrange protocol=tcp
就我而言,更改端口后,一切正常。
归档时间: |
|
查看次数: |
124381 次 |
最近记录: |