clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
SocketAsyncEventArgs socketEventArg = new SocketAsyncEventArgs();
socketEventArg.Completed += new EventHandler<SocketAsyncEventArgs>(OnConnect);
socketEventArg.RemoteEndPoint = new IPEndPoint(IPAddress.Parse(serverIP), serverPort);
socketEventArg.UserToken = clientSocket;
clientSocket.ConnectAsync(socketEventArg);
这段代码连接失败,返回AccessDenied。
MSDN的说明是:An attempt was made to access a Socket in a way that is forbidden by its access permissions
权限不够!
那么哪里可以设置权限呢?
1. Package.appxmanifest => 功能 ,然后勾选即可
2. Package.appxmanifest => 右键 => 查看代码,然后加入如下代码
<Capabilities>
<Capability Name="internetClientServer" />
<Capability Name="privateNetworkClientServer" />
</Capabilities>
详细说明:https://msdn.microsoft.com/library/windows/apps/xaml/mt270968.aspx
本文介绍了解决Socket编程中遇到的AccessDenied错误的方法。通过修改Package.appxmanifest文件并添加必要的权限声明,如internetClientServer和privateNetworkClientServer,可以有效解决因权限不足导致的Socket连接失败问题。
698

被折叠的 条评论
为什么被折叠?



