已经运行的应用程序现在出现套接字错误 10013

2024-04-20

我在 VB.NET 中完成了一个应用程序,该应用程序侦听特定的 UDP 端口并通过同一端口应答发送数据包的 IP。 从几年到上个月,它都运行良好;现在当尝试回答由于套接字错误 10013 导致的崩溃时。

我什至尝试了一个我知道它也可以工作的旧版本,但遇到了同样的崩溃。

我尝试禁用 Microsoft Security Essentials 实时保护和 Windows 防火墙,但没有成功。

在代码中我有一行

MyUdpClient.Client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, True)

我不知道该怎么做,我迷路了。

知道如何解决这个问题吗?

Edit:这是代码

#Region "UDP Send variables"
   Dim GLOIP As IPAddress
   Dim GLOINTPORT As Integer
   Dim bytCommand As Byte() = New Byte() {}
#End Region

Dim MyUdpClient As New UdpClient()

Private Sub StartUdpBtn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles StartUdpBtn.Click
      If StartUdpBtn.Tag = 0 Then
          '   If Not UdpOpen Then
          StartUdpReceiveThread(CInt(ListeningPortLbl.Text))
          'End If
      Else
          If ThreadReceive.IsAlive Then
              ThreadReceive.Abort()
              MyUdpClient.Close()
              PrintLog("UDP port closed")
              StartUdpBtn.Tag = 0
              UdpOpen = False
              StartUdpBtn.Text = "Start UDP"
          End If
      End If

      If UdpOpen Then
          StartUdpBtn.Tag = 1
          StartUdpBtn.Text = "Stop UDP"
      Else
          StartUdpBtn.Tag = 0
          StartUdpBtn.Text = "Start UDP"
          TimerUDP.Enabled = False
          TiempoUDP.Stop()
          TiempoUdpLbl.Text = "--:--:--"
      End If

  End Sub

Private Sub StartUdpReceiveThread(ByVal Port As Integer)
    Dim UdpAlreadyOpen As Boolean = False
    Try
        If Not UdpOpen Then
            MyUdpClient = New UdpClient(Port)
            MyUdpClient.Client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, True)
            UdpAlreadyOpen = True
        Else
            Me.Invoke(Sub()
                          TiempoUDP.Restart()
                          If TimerUDP.Enabled = False Then
                              TimerUDP.Enabled = True
                          End If
                      End Sub)
        End If

        ThreadReceive = New System.Threading.Thread(AddressOf UdpReceive)
        ThreadReceive.IsBackground = True

        ThreadReceive.Start()
        UdpOpen = True

        If UdpAlreadyOpen Then 
                PrintLog(String.Format("UDP port {0} opened, waiting data...", Port.ToString))
        End If
    Catch ex As Exception
        PrintErrorLog(ex.Message)
        PrintErrorLog(ex.StackTrace)
    End Try
End Sub

Private Sub UdpReceive()
    Dim receiveBytes As [Byte]() = MyUdpClient.Receive(RemoteIpEndPoint) 
    DstPort = RemoteIpEndPoint.Port
    IpRemota(RemoteIpEndPoint.Address.ToString)
    Dim BitDet As BitArray
    BitDet = New BitArray(receiveBytes)
    Dim strReturnData As String = System.Text.Encoding.ASCII.GetString(receiveBytes)
    If UdpOpen Then
        StartUdpReceiveThread(CInt(ListeningPortLbl.Text))
    End If

    PrintLog("From: " & RemoteIpLbl.Text & ":" & ListeningPortLbl.Text & " - " & strReturnData)
    AnswersProcessor(strReturnData)

End Sub

Private Sub UdpSend(ByVal txtMessage As String)
    Dim pRet As Integer
    GLOIP = IPAddress.Parse(RemoteIpLbl.Text)
    'From UDP_Server3_StackOv

    Using UdpSender As New System.Net.Sockets.UdpClient()
        Dim RemoteEndPoint = New System.Net.IPEndPoint(0, My.Settings.UDP_Port)
        UdpSender.ExclusiveAddressUse = False
        UdpSender.Client.SetSocketOption(Net.Sockets.SocketOptionLevel.Socket, Net.Sockets.SocketOptionName.ReuseAddress, True)
        UdpSender.Client.Bind(RemoteEndPoint)
        UdpSender.Connect(GLOIP, DstPort)
        bytCommand = Encoding.ASCII.GetBytes(txtMessage)
        pRet = UdpSender.Send(bytCommand, bytCommand.Length)
    End Using

    PrintLog("No of bytes send " & pRet)
End Sub

10013 是WSAEACCES,即有记录的 https://msdn.microsoft.com/en-us/library/windows/desktop/ms740668.aspx如下:

没有权限。

尝试以访问权限禁止的方式访问套接字。一个示例是使用 sendto 的广播地址,而没有使用 setsockopt(SO_BROADCAST) 设置广播权限。

WSAEACCES 错误的另一个可能原因是,当调用绑定函数时(在 Windows NT 4.0 SP4 及更高版本上),另一个应用程序、服务或内核模式驱动程序被绑定到具有独占访问权限的同一地址。这种独占访问是 Windows NT 4.0 SP4 及更高版本的新功能,是通过使用 SO_EXCLUSIVEADDRUSE 选项实现的。

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

已经运行的应用程序现在出现套接字错误 10013 的相关文章

随机推荐

  • Android 指纹原始数据

    Android 的指纹传感器实现是否支持直接访问原始指纹数据 即手指上的实际图案 我并不是指用于解锁设备和付款的存储的安全指纹 而是指在扫描手指时按需获取原始数据 如果没有 为什么不呢 Android API 的作用not允许直接访问原始指
  • 在 Unity 中双向旋转门

    我在 Unity 中创建了一扇打开和关闭的门 我可以通过打电话打开那扇门Interact 现在我想创建一扇始终远离玩家打开的门 就像酒吧的门一样 如果玩家在房间前面 门就会旋转到房间 如果玩家在房间里 门就会旋转出去 目前我创建了一个布尔值
  • Python - AttributeError:“NoneType”对象没有属性“findAll”

    我已经编写了第一段 python 代码来抓取网站 import csv import urllib2 from BeautifulSoup import BeautifulSoup c csv writer open data csv wb
  • 尝试将 span 元素设置为等于 JS 石头剪刀布游戏中的变量值

    我正在编写一个玩石头 剪刀 布的程序 当我编码时 一切都很顺利 直到我添加了 userScore span InnerHTML userScore 线 在测试 win 功能时 我添加了 console log you win 它工作得很好
  • Vue.js 隐藏当前视口之外的项目

    我正在 Vue js 中制作一个电子商务类型的菜单 其中的项目是包含大量功能和图像的 div 当渲染大约 200 个这样的项目时 性能相当不错 但是当添加的数量超过这个数量时 网站的性能开始变得缓慢 如果 Vue 元素位于当前可滚动视图之外
  • 为什么 Scala 程序的编译速度非常慢?

    过去两个月我一直在使用 Scala 我还在一个小应用程序中使用 Play 框架 我观察到 即使对于打印 Hello World 的程序来说 编译也非常慢 为什么这么慢 有什么减少时间的技巧吗 您的情况下编译速度有多快 scalac 的速度受
  • 无法访问 GridView 中的 HyperLinkField 文本

    我有一个 HyperLinkField 定义如下
  • 在 vs 代码编辑器中隐藏代码块行

    我的所有代码上都有这些奇怪的行 它们似乎突出显示了代码块 我该如何关闭它们 我的是1 30版本 Link https ibb co z5Tt6t4 https ibb co z5Tt6t4 所以左边的白线 它们叫什么以及如何将它们关闭 您可
  • 识别不在另一个数据框中的记录

    我有一个像这样的数据框 data1 pd DataFrame a z 0 a y 20 b z 1 columns id1 id2 number data2 pd DataFrame a y 1 a y 1 b z 0 columns id
  • NLog 的线程安全性如何?

    Well 我等了好几天才决定发布这个问题 因为我不知道如何陈述这一点 结果写了一篇很长的详细帖子 不过 我认为此时向社区寻求帮助是有意义的 基本上 我尝试使用 NLog 为数百个线程配置记录器 我认为这会非常简单 但几十秒后我得到了这个异常
  • 埃拉托斯特尼筛法速度比较:Python 与 Julia

    所以我有一个用 Python 和 Julia 编写的 Eratosthenes 函数的小筛子 并且我正在比较运行时间 这是Python代码 import time def get primes n numbers set range n 1
  • 将缺失值 (NA) 替换为空白(空字符串)

    我有一个带有 NA 行的数据框 df data frame c classA NA classB t data frame rep A 5 rep NA 5 rep B 5 rownames df lt c 1 2 3 colnames d
  • 使用 Swift 3 在 Xcode 8 中构建适用于 WatchOS 和 iOS 的嵌入式框架

    我正在将最初用 Swift 1 编写的全 iOS WatchOS 1 应用程序移植到最新的 Xcode 8 WatchOS 3 Swift 3 我的应用程序有一个嵌入式框架 具有一些常用功能 用于编译和运行 watchkit 扩展目标和 i
  • 如何避免每次创建新的 javafx 项目时添加 vm 参数?

    我正在使用 e fx clipse 插件和 scenebuilder 在 STS 4 6 1 中创建 javafx 项目 每次创建新项目时 我都必须在运行配置中添加虚拟机参数 module path home path to javafx
  • Excel 数据透视表“显示为”值列中的差异

    当值显示为父列总数的百分比时 有没有办法让数据透视表自动计算两列之间的差异 现在我需要手动 但表格是动态的 竞争对手的数量可能会有所不同 功能看起来很简单 但在谷歌搜索后找不到它 See example picture below of w
  • 在 iOS 6 中,检查一个人是否登录了社交网络?

    有没有办法检查用户是否确实在操作系统中登录了 facebook 或 twitter 我想这样做的原因是依靠应用程序中的共享 例如使用 facebooks SDK 来共享 而不要求用户再次登录 我实际上认为代码 SLComposeViewCo
  • Apache Spark 警告“在 RowBasedKeyValueBatch 上调用溢出()”的含义

    我正在使用 Apache Spark 本地模式运行 pyspark 2 2 0 作业 并看到以下警告 WARN RowBasedKeyValueBatch Calling spill on RowBasedKeyValueBatch Wil
  • SSIS 包损坏,错误为 0xC00CE504

    我有一个损坏的 SSIS 包 并显示错误消息 由于错误 0xC00CE504 名称以无效字符开头 第 13 行第 2 列 无法加载 XML 当加载包并且文件无法打开或无法正确加载到 XML 文档时会发生这种情况 这可能是由于向 LoadPa
  • 部分彩色文本并使其在 Jetpack Compose 中可点击 [重复]

    这个问题在这里已经有答案了 对于 XML 中声明的视图 我们可以使用SpannableStringBuilder正如这里提到的https stackoverflow com a 4897412 9715339 https stackover
  • 已经运行的应用程序现在出现套接字错误 10013

    我在 VB NET 中完成了一个应用程序 该应用程序侦听特定的 UDP 端口并通过同一端口应答发送数据包的 IP 从几年到上个月 它都运行良好 现在当尝试回答由于套接字错误 10013 导致的崩溃时 我什至尝试了一个我知道它也可以工作的旧版