我写这篇文章是为了找出下面代码导致超级服务器设置失败的原因。
var appServer = new AppServer();
if (!appServer.Setup(8080)){
MessageBox.Show("Failed!");
}
我在防火墙中添加了允许端口8080的规则,因为我的防火墙是由公司IT启用的。不知道为什么设置失败。有解释吗?
答案 0 :(得分:3)
使用以下内容在控制台应用程序中进行本地测试(需要NuGet包SuperSocket
和SuperSocket.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
的常见替代方法。 / p>