只能将套接字绑定到127.0.0.1

时间:2013-12-04 18:44:09

标签: c# sockets

我现在在C#中使用套接字服务器,但我只能将它绑定到127.0.0.1。 但它必须绑定到我的VPS IP。即使我尝试绑定到我的hamachi IP,它也不起作用。

我用:

ServerSocketSettings Settings = new ServerSocketSettings
{
    MaxConnections = Config.ServerMaxConnections,
    NumOfSaeaForRec = Config.ServerMaxConnections,
    Backlog = 30,
    MaxSimultaneousAcceptOps = 15,
    BufferSize = 512,
    Endpoint = new IPEndPoint(IPAddress.Parse("25.168.77.190"), Config.ServerPort)
};

this._serverSocket = new ServerSocket(Settings);

然后我这样做:

this.ListenSocket = new Socket(this.Settings.Endpoint.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
this.ListenSocket.Bind(this.Settings.Endpoint);
this.ListenSocket.Listen(this.Settings.Backlog);

this.Settings是上面代码的值。 当我运行它时,我得到:

  

请求的地址在其上下文中无效

我想知道为什么它不起作用。

1 个答案:

答案 0 :(得分:1)

如果要限制此网段的服务可用性,则应将侦听套接字仅绑定到特定接口。

如果不需要,您可以使用

将其绑定到任何IP地址
this.ListenSocket.Bind(new IPEndPoint(IPAddress.Any));