【问题标题】:Difference between winsock remoteport and winsock localport visual basic 6winsock remoteport和winsock localport visual basic 6的区别
【发布时间】:2013-01-17 18:45:13
【问题描述】:

我搜索了互联网但没有得到答案,可以解释一下它们之间的区别

【问题讨论】:

    标签: vb6 winsock


    【解决方案1】:

    一个 TCP “连接”是一个 4 元组。本地 IP、本地端口、远程 IP 和远程端口。每一端都在其 TCP 堆栈中维护此标识,但意义相反(本地与远程)。

    这 4 个值的组合必须是唯一的。这解释了人们在编写 TCP 客户端时经常遇到的问题,该客户端重用套接字以重新连接到同一服务器。

    “关闭”连接会将此 ID 留在每一端的表中一段时间​​,处于 TIME_WAIT 状态。这是一个 TCP 机制的产物,即使物理层连接中断,也可以保持连接完整性,阻止待处理的数据包被第二个连接接收等。TIME_WAIT 可以持续长达 4 分钟。

    除非客户端将其套接字的 LocalPort 重置为 0(这是对自动临时端口分配的请求),否则如果在 TIME_WAIT 到期之前尝试重新连接,它可能会失败。由于对于新创建的套接字,这为 0,因此程序员在调用 Connect 之前通常会忽略此要求。

    LocalPort 不仅仅是监听套接字的问题。

    【讨论】:

      【解决方案2】:

      服务器侦听本地端口,而客户端从本地端口发送数据。 客户端远程端口应该与服务器本地端口相同。 IE。: 服务器侦听端口 n(相对于服务器的本地端口) 客户端通过端口 n 连接到服务器(相对于客户端的远程端口)

      要回答您的问题,区别在于名称,基于视角。

      This seems to be a good place to start with VB6 socket communication

      【讨论】:

      • 我能再问你 1 件事吗?在 WAN 上连接客户端和服务器时一切都正确完成了,但是我的 ip 是动态的,这意味着它每次都会改变,所以我创建了一个没有 ip 的命名 ip,但是是否可以像这样连接我的winsock winsock.connect "mynamedip.no-ip.com" 50505 '我的端口是50505
      • 除非您的服务器位于 NAT 路由器后面,否则该方法有效。然后你的路由器需要有一个端口转发规则才能让它工作。像小型 NAT 路由器提供的普通 192.168.0.0 网络这样的专用网络,使用普通规则无法进行入站路由,需要额外映射规则的帮助。
      • ive 已经在 50505 转发端口。问题是我建立了反向连接,其中服务器充当客户端,客户端充当服务器。只是为了向自己保证,我需要问你一个问题。我了解到,应该在服务器正在侦听的服务器计算机上打开端口,但在客户端计算机上不需要它,Winsock 自己会这样做。是不是真的。 ??
      猜你喜欢
      • 2023-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-02
      • 2012-04-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多