You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VB中TCP通信服务器启动报错:Socket地址/端口被占用

解决Visual Basic TCP服务器启动时的SocketException异常

你遇到的System.Net.Sockets.SocketException: Only one usage of each socket address (protocol/network address/port) is normally permitted异常,核心原因是端口2000已被其他进程占用,或是你的程序之前的运行实例没有正确释放该端口资源。

以下是具体解决方法:

  • 排查并释放占用的端口
    打开Windows命令提示符,执行以下命令找到占用2000端口的进程ID(PID):

    netstat -ano | findstr :2000
    

    打开任务管理器,通过PID找到对应进程并结束,之后重新启动你的VB程序。

  • 确保程序正确释放端口资源
    在程序退出或停止服务器时,必须显式调用server.Stop()释放端口,避免端口被残留进程占用。比如在窗体的关闭事件中添加代码:

    Private Sub Form1_FormClosing(sender As Object, e As FormClosingEventArgs) Handles MyBase.FormClosing
        If server IsNot Nothing Then
            server.Stop()
        End If
    End Sub
    
  • 更换未被占用的端口
    若不想处理端口占用问题,可直接将代码中的端口号替换为其他未被使用的端口,例如2001:

    server = New TcpListener(IPAddress.Any, 2001)
    

内容的提问来源于stack exchange,提问作者Noob_Programmer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 10:29:55