【问题标题】:SuperSocket can't set up a serverSuperSocket 无法设置服务器
【发布时间】:2026-02-01 20:30:02
【问题描述】:

我写这篇文章是为了找出为什么下面的代码会导致超级套接字服务器设置失败。

    var appServer = new AppServer();
    if (!appServer.Setup(8080)){
        MessageBox.Show("Failed!");
    }

我在防火墙中添加了允许端口 8080 的规则,因为我的防火墙由公司 IT 启用。不知道为什么设置失败。有解释吗?

【问题讨论】:

  • 如果您启用调试和错误日志记录,它可能会在日志文件中显示错误 - 但从端口号 8080 看来,此端口似乎正在被某个程序使用 - 尝试另一个端口号,例如9199
  • Ez pz 提供的信息不多,发布调试日志。
  • @Luicy,您应该提供异常详细信息/堆栈跟踪或其他信息,否则赏金将被浪费

标签: c# supersocket.net


【解决方案1】:

使用以下内容在控制台应用程序中进行本地测试(需要 NuGet 包 SuperSocketSuperSocket.Engine

namespace SupersocketTest
{
    using System;
    using SuperSocket.SocketBase;

    class Program
    {
        static void Main(string[] args)
        {
            var server = new AppServer();
            bool success = server.Setup(8080);
            Console.WriteLine($"Server setup: {success}");
            Console.ReadKey();
        }
    }
}

操作成功完成。

在线查看code,底层连接还是基于Socket(正如包名所暗示的)。因此,它受制于套接字在 .NET 中如何正常工作的所有规则。

可能导致Socket 设置失败的事情有(但不限于)

  • 套接字正在使用中
  • 套接字已关闭
  • 操作系统已用完可用的套接字(不太可能,但在技术上是可能的)

如果没有更多关于您遇到的异常的详细信息,我只能猜测,但我怀疑套接字正在使用中,因为 8080 是另一个应用程序可能正在使用的 80 的常见替代方案。

【讨论】:

    最近更新 更多