SocketException:使用 UdpClient 打开端口时“访问被拒绝”

2024-01-20

我正在尝试开始侦听 Android 设备上的 UDP 端口之一。我正在使用 Xamarin.Forms,并在物理 Android 手机上测试它。

public void StartListening(int port = 13000)
{
    ListenerPort = port;
    udpClient = new UdpClient(ListenerPort);

    udpClient.BeginReceive(new AsyncCallback(handleIncomingMessages), null);
}

该函数在应用程序启动时使用:

public partial class App : Application
{
    [...]
    protected override void OnStart()
    {
        network.StartListening(LISTENING_ON_PORT);
    }
}

SO 上有很多类似的问题,但大多数都是通过向 android 清单添加 INTERNET 权限来解决的。这是我的:

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="1.0" package="com.companyname.ddand">
  <uses-sdk android:minSdkVersion="21" android:targetSdkVersion="28" />
  <application android:label="ddAnd.Android" android:theme="@style/MainTheme"></application>
  <uses-permission android:name="android.permission.INTERNET"/>
  <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
  <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
  <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
  <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
</manifest>

部署我的应用程序后我看到的是:

System.Net.Sockets.SocketException:“访问被拒绝”

并且没有提供其他细节。

我认为我的端口正在被另一个进程使用,但我检查了其中的许多端口(在 1-1024 范围之外),并且使用所有端口都给出了相同的结果。

是否还有其他原因导致此异常?您对如何解决问题有任何想法吗(例如如何找到可用端口)?

EDIT:

正如评论中所建议的,我尝试在运行时获得访问权限(尽管这不是必需的,Xamarin 在调试模式下默认授予 INTERNET 权限 https://learn.microsoft.com/en-us/xamarin/android/app-fundamentals/permissions?tabs=windows).

该行返回已授予权限的信息。

var havePermission = ContextCompat.CheckSelfPermission(this, Manifest.Permission.Internet);

尽管如此,我还是尝试在运行时手动获取访问权限

ActivityCompat.RequestPermissions(this, new String[] { Manifest.Permission.Internet }, 1);

结果和以前一样。


你可以尝试使用下面的代码吗? (改编自文档 https://learn.microsoft.com/en-us/dotnet/api/system.net.sockets.udpclient.beginreceive?view=netcore-3.1)

public void StartListening(int port = 13000)
{
    ListenerPort = port;
    IPEndPoint ipEndPoint = new IPEndPoint(IPAddress.Any, ListenerPort);
    udpClient = new UdpClient(ipEndPoint);
    
    UdpState udpState = new UdpState();
    udpState.e = ipEndPoint;
    udpState.u = udpClient;

    udpState.BeginReceive(new AsyncCallback(handleIncomingMessages), udpState);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SocketException:使用 UdpClient 打开端口时“访问被拒绝” 的相关文章

  • 模拟器:进程已完成,退出代码为 134(被信号 6:SIGABRT 中断)

    我最近刚刚开始在 Mac 上下载 Android Studio 版本 3 0 1 但收到以下错误 模拟器 进程已完成 退出代码为 134 被信号 6 SIGABRT 中断 我按照 Android Studio 教程操作并能够运行模拟器 但在
  • 更改android中禁用按钮的颜色

    有没有办法通过样式或其他形式更改 android 中禁用按钮的颜色 我目前有以下内容 可绘制 button default xml
  • 点击监听器的公共类

    我的所有 6 项活动中有 7 个按钮 所有 6 个按钮在所有活动中都具有相同的功能 如何为这 6 个按钮执行通用的单击事件侦听器 您可以创建一个实现 View OnClickListener 的新类 如下所示 public class My
  • c# Asp.NET MVC 使用FileStreamResult下载excel文件

    我需要构建一个方法 它将接收模型 从中构建excel 构建和接收部分完成没有问题 然后使用内存流导出 让用户下载它 不将其保存在服务器上 我是 ASP NET 和 MVC 的新手 所以我找到了指南并将其构建为教程项目 public File
  • 当 Cortex-M3 出现硬故障时如何保留堆栈跟踪?

    使用以下设置 基于 Cortex M3 的 C gcc arm 交叉工具链 https launchpad net gcc arm embedded 使用 C 和 C FreeRtos 7 5 3 日食月神 Segger Jlink 与 J
  • Android:如何使视图增长以填充可用空间?

    这看起来很简单 但我不知道该怎么做 我有一个带有 EditText 和两个 ImageButtons 的水平布局 我希望 ImageButtons 具有固定大小 并且 EditText 占据布局中的剩余空间 如何才能做到这一点
  • Android:单一活动,多个视图

    我不是 Android 专业人士 尽管我开发了一个包含 50 多个活动的应用程序 这使得该应用程序非常庞大 经过8周的开发 现在出现了一些问题 导致应用程序难以维护和升级 我正在处理的主要问题是 我无法将对象引用传递给活动的构造函数 事实上
  • 如何在 Team Foundation 上强制发表有意义的签入评论?

    我有一个开发团队有一个坏习惯 他们写道poor签入评论 当我们必须在团队基础上查看文件的历史记录时 这使得它成为一场噩梦 我已经启用了变更集评论政策 这样他们甚至可以在签到时留下评论 否则他们不会 我们就团队的工作质量进行了一些讨论 他们很
  • 是否有比 lex/flex 更好(更现代)的工具来生成 C++ 分词器?

    我最近将源文件解析添加到现有工具中 该工具从复杂的命令行参数生成输出文件 命令行参数变得如此复杂 以至于我们开始允许它们作为一个文件提供 该文件被解析为一个非常大的命令行 但语法仍然很尴尬 因此我添加了使用更合理的语法解析源文件的功能 我使
  • 我的 strlcpy 版本

    海湾合作委员会 4 4 4 c89 我的程序做了很多字符串处理 我不想使用 strncpy 因为它不会终止 我不能使用 strlcpy 因为它不可移植 只是几个问题 我怎样才能让我的函数正常运行 以确保它完全安全稳定 单元测试 这对于生产来
  • 初始化变量的不同方式

    在 C 中初始化变量有多种方法 int z 3 与 int 相同z 3 Is int z z 3 same as int z z 3 您可以使用 int z z 3 Or just int z 3 Or int z 3 Or int z i
  • 用 C 实现 Unix shell:检查文件是否可执行

    我正在努力用 C 语言实现 Unix shell 目前正在处理相对路径的问题 特别是在输入命令时 现在 我每次都必须输入可执行文件的完整路径 而我宁愿简单地输入 ls 或 cat 我已经设法获取 PATH 环境变量 我的想法是在 字符处拆分
  • C 中的位移位

    如果与有符号整数对应的位模式右移 则 1 vacant bit will be filled by the sign bit 2 vacant bit will be filled by 0 3 The outcome is impleme
  • Xamarin:“框架不在模块中”- VS 2013&2015

    我对 XAMARIN 支持感到非常失望 那么 我将从头开始 过去几个月一切都很好 直到我更新了 xamarin 的最新版本 4 0 3 214 结果是我现在无法调试 我收到以下消息 框架不在模块中 我向 Xamarin 支持发送了一封电子邮
  • 已过时 - OpenCV 的错误模式

    我正在使用 OpenCV 1 进行一些图像处理 并且对 cvSetErrMode 函数 它是 CxCore 的一部分 感到困惑 OpenCV 具有三种错误模式 叶 调用错误处理程序后 程序终止 Parent 程序没有终止 但错误处理程序被调
  • 如何在内存中存储分子?

    我想将分子存储在内存中 这些可以是简单的分子 Methane CH4 C H bond length 108 7 pm H H angle 109 degrees But also more complex molecules like p
  • ListDictionary 类是否有通用替代方案?

    我正在查看一些示例代码 其中他们使用了ListDictionary对象来存储少量数据 大约 5 10 个对象左右 但这个数字可能会随着时间的推移而改变 我使用此类的唯一问题是 与我所做的其他所有事情不同 它不是通用的 这意味着 如果我在这里
  • 如何将字符串“07:35”(HH:MM) 转换为 TimeSpan

    我想知道是否有办法将 24 小时时间格式的字符串转换为 TimeSpan 现在我有一种 旧时尚风格 string stringTime 07 35 string values stringTime Split TimeSpan ts new
  • 修改 ADW Android 启动器?

    我想更改和修改开源 ADW 启动器 启动器可在此处获取 https github com AnderWeb android packages apps Launcher https github com AnderWeb android p
  • 绘制大位图时 nSyncAndDrawFrame 速度极慢

    我想用多个大位图优化视差滚动视图 在我的 Nexus 5 上 一切都很顺利 Traceview 转储如下所示 doFrame 方法大约需要 18 毫秒才能完成 但是 当使用我的 Nexus 7 或 Android 6 模拟器 Genymot

随机推荐

  • 在 Haskell 中动态构建列表理解

    我很好奇是否可以在 Haskell 中动态构建列表理解 举个例子 如果我有以下内容 all pows a a b b a y b z y lt take a 0 z lt take b 0 我得到了我所追求的 Main gt List so
  • hashCode 等于 Integer.MIN_VALUE 的 Java 字符串

    是否存在 hashCode 完全等于 Integer MIN VALUE 的已知 Java 字符串 为哈希表编写测试有助于避免在执行余数运算之前在哈希码上运行 Math Abs 的常见错误 理想情况下 该字符串仅包含 ASCII 字符 但我
  • 在mysql中,显示数据库;命令未列出我的所有数据库

    我可以使用 HeidiSQL 访问我的所有数据库 但是如果我转到 mysql exe 窗口并使用显示数据库 11 个中只有 2 个出现 这些都是 127 0 0 1 上的数据库 有什么想法吗 您正在登录 HeidiSQLroot 所以它向您
  • Docker 中的 ng build --prod 非常慢

    当我尝试在 docker 中构建 angular7 项目时 大约需要 40 分钟 需要40分钟的线路是 ng 构建 prod 92 块资产优化 TerserPlugin 我在同一台笔记本电脑上在 docker 外部运行了 ng build
  • 创建 vscode 主题时如何自定义命令调色板颜色和键绑定

    为自己创建一个 VSCode 主题 我喜欢目前的颜色配置 但是当我打开命令调色板时 它是 透视 的 因此很难阅读 设计主题时如何配置调色板 V1 36为命令调色板 快速打开面板添加了这两个颜色自定义 quickInput backgroun
  • Gcc 隐藏来自包含的静态库的符号的可见性

    I have 一个共享库 比如说libShared so 其中包含一个类Bar 用一种方法int Bar do int d const 一个静态库 比如说libStatic a 其中包含一个类Foo 用一种方法int Foo act int
  • 如何在 C# 中更改 EMF+ 图像的颜色

    我正在尝试开发一种特殊类型的热图 其中标记的颜色取决于某些计算变量的值 我需要做的是更改现有 EMF Image 的颜色 以下代码在使用 png 或 wmf 文件时非常有用 但在使用 EMF 文件时 DrawImage 不会绘制任何内容 E
  • 如何创建非托管 Neo4j 扩展?

    我对我的项目有一些具体要求 因此我决定实现非托管 Neo4j 扩展 我在 Neo4j 文档中找到了这些信息 非托管扩展 http neo4j com docs stable server unmanaged extensions html
  • ARKit 人物遮挡样本是如何完成的?

    这可能是一个晦涩的问题 但我在网上看到了很多非常酷的示例 展示了人们如何使用 ARKit 3 中新的 ARKit 人物遮挡技术来有效地将人物与背景 分离 并对 人物 应用某种过滤 人 见 在查看苹果提供的源代码和文档时 我发现我可以检索se
  • scala 中 Magic 的 ColumnNotFound 问题

    我收到 play exceptions JavaExecutionException 尝试后在一段代码中出现 ColumnNotFound comments id 迁移到 MySql 而不是 memorydb Magic 对 Postgre
  • Graphics.MeasureString 允许过多空白

    我正在使用一个函数来调用要在区域内呈现的一段文本 该函数的基本工作原理是 Dim measureSize as Size Do myFont new Font myFont Name myFont Size 1 FontStyle Regu
  • 同时ajax请求angularjs?

    我想一次发送多个ajax请求 这是我的js代码 a class btn btn success Re Check a app controller customersCrtl function scope http timeout func
  • 是否可以缓存 lambda 表达式中计算的值?

    下面代码中的ContainsIngredients方法中 是否可以缓存p 成分value 而不是多次显式引用它 这是一个相当简单的示例 我只是为了说明目的而编写的 但我正在处理的代码引用了内部深处的值p eg p InnerObject E
  • glfwGetVideoMode(glfwGetPrimaryMonitor()) 不起作用

    所以我正在观看关于如何使用 Lwjgl 创建窗口的 java 教程 我到达了这部分 您可以在其中获得主监视器 ByteBuffer vidmode glfwGetVideoMode glfwGetPrimaryMonitor glfwSet
  • 如何设置默认的Windows套件(SDK)版本?

    我曾经在我的 C 应用程序中使用 Windows 8 1 SDK 一切正常 今天我安装了 Windows 10 SDK 但找不到一种方法将其设为默认 我可以在 Visual Studio 项目设置中对新的 SDK 路径进行硬编码 但这是非常
  • Xcode - 单元测试 - 针对 iOS 12 进行编译,但模块的最低部署目标为 13

    我在运行单元测试时遇到问题 问题位于代码行下方 testable导入PROJECT NAME Error Compiling for iOS 12 1 but module PROJECT NAME has a minimum deploy
  • AndroidcameraSource.stop()导致应用程序冻结

    我正在使用 google Vision API 构建一个具有二维码扫描仪的应用程序 读取二维码后 我无法停止相机 流量是MainActivity gt QrActivity一旦二维码收到检测 应用程序应返回到主活动 如果我不打电话camer
  • 重新定义/隐藏局部变量有多糟糕?

    在将遗留项目升级到 VS2015 时 我注意到存在很多错误 例如在函数内部重新定义局部变量 void fun int count applesCount cout lt lt Apples cost lt lt count 1 25 for
  • Rails - 有两个父母的嵌套资源

    假设我有一个带有两个父模型的子模型 Event has many tickets Person has many tickets Ticket belongs to Event Ticket belongs to Person 路线已映射
  • SocketException:使用 UdpClient 打开端口时“访问被拒绝”

    我正在尝试开始侦听 Android 设备上的 UDP 端口之一 我正在使用 Xamarin Forms 并在物理 Android 手机上测试它 public void StartListening int port 13000 Listen