【问题标题】:How to determine Local Port for a socket established in VB6如何确定在 VB6 中建立的套接字的本地端口
【发布时间】:2010-10-05 16:41:48
【问题描述】:

在一个 VB6 应用程序中,我正在寻找一种方法来确定双工套接字的本地端口。

我有远程 Ip 和端口,但我还需要知道打印出本地端口。

【问题讨论】:

    标签: sockets vb6 winsock


    【解决方案1】:

    只需查询 Winsock 控件的 LocalPort 属性。

    LocalPort 属性既用于设置发送/侦听端口,也用于在建立连接后检索它。即使您指定端口 0,在这种情况下控件会选择一个随机端口,在建立连接后,此属性将包含该端口号。

    【讨论】:

    • 假设 TCP,在连接之前不将 LocalPort 设置为 0 通常是个坏主意。否则在断开连接后,您将无法重新连接,直到大约 4 分钟过去。更多详情请搜索“TIME-WAIT”。
    • 是的,我自己也遇到过那个 4 分钟的问题。 2*ML 其中 ML 在注册表中设置。 ML 值默认为 4 分钟,但可以降低到 15 秒。我不相信您可以将其设置为小于 15 秒的值,从而重新连接等待至少 30 秒。但是关于将 LocalPort 设置为 0 的建议可以避免这种情况,直到您用完 windows 的每个用户 5000 个套接字的限制。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-05
    • 2012-06-12
    • 2011-06-14
    • 2011-10-03
    • 2021-09-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多