【问题标题】:Port confusion (breaks my .NET code)端口混乱(破坏了我的 .NET 代码)
【发布时间】:2011-03-19 21:49:42
【问题描述】:

使用 netstat 我在我的列表中找到了这个

  TCP    127.0.0.1:9832         My-PC:9832          ESTABLISHED

我的问题是我的本地端口如何传出并连接到同一个 TCP 端口?

这破坏了我的代码,因为我正在监听端口 9832。我收到权限错误。在此代码起作用之前,我需要丢失 Firefox 并重新打开我的所有选项卡。我猜的另一个问题是,是否有一个范围应该用于监听并且不会用作传出连接?

我很困惑。

【问题讨论】:

    标签: .net sockets windows-7 ports


    【解决方案1】:

    对传出连接和侦听使用相同的端口号是完全有效的。如果您连接到自己的计算机,那么您将获得如您所示的 netstat 输出。

    TCP 连接由 4 元组(source-ip, source-port, dest-ip, dest-port)标识,所以没有什么说 source-port 不能与 dest-port 相同。

    也许您正在绑定到您的客户端代码中的特定端口?通常你只需要为 server 代码绑定一个特定的端口。

    您关于必须关闭 Firefox 的问题无疑与此无关。

    【讨论】:

    • 什么不是洁净,但是,在 loopback 连接的两端具有相同的端口。那么 4 元组在两个方向上都是相同的。另外,我认为不可能建立一个在一侧具有环回地址而在另一侧具有非环回地址的连接。
    • 我认为拥有一个用于 out 和 in 的端口是无效的,尤其是在 IP 地址相同的情况下。如果一个数据包从 127.0.0.1:123 发送到 127.0.0.1:123,它如何知道它是由服务器还是客户端发送的?如果我在队列中看到一个数据包到 127.0.0.1:123 我怎么知道它的客户端或服务器接收。这太令人困惑了。
    • 我的 client 代码是一些 ajax。准确地说是 GM_xmlhttpRequest。我认为不可能绑定到端口。我有多个没有问题的客户。稍后当我遇到问题时。在我在 VS 中杀死我的进程后,我的套接字可能还活着。我还是一头雾水。
    猜你喜欢
    • 2017-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-14
    • 2022-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多