Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb6 winsock remoteport和winsock localport之间的差异visual basic 6_Vb6_Winsock - Fatal编程技术网

Vb6 winsock remoteport和winsock localport之间的差异visual basic 6

Vb6 winsock remoteport和winsock localport之间的差异visual basic 6,vb6,winsock,Vb6,Winsock,我在网上搜索了一下,但没有找到答案。有人能解释一下它们之间的区别吗?服务器监听本地端口,而客户端从本地端口发送数据。 客户端远程端口应与服务器本地端口相同。 即。: 服务器侦听端口n(相对于服务器的本地端口) 客户端连接到端口n上的服务器(相对于客户端的远程端口) 要回答您的问题,区别在于名称,基于视角 TCP“连接”是一个4元组。本地IP、本地端口、远程IP和远程端口。每一端在其TCP堆栈中维护该标识,感官颠倒(本地与远程) 这4个值的组合必须是唯一的。这解释了人们在编写TCP客户机时经常遇到

我在网上搜索了一下,但没有找到答案。有人能解释一下它们之间的区别吗?服务器监听本地端口,而客户端从本地端口发送数据。 客户端远程端口应与服务器本地端口相同。 即。: 服务器侦听端口n(相对于服务器的本地端口) 客户端连接到端口n上的服务器(相对于客户端的远程端口)

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

TCP“连接”是一个4元组。本地IP、本地端口、远程IP和远程端口。每一端在其TCP堆栈中维护该标识,感官颠倒(本地与远程)

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

“关闭”连接会在每一端的表中保留此ID一段时间,处于time\U WAIT状态。这是TCP mechansim的产物,它处理即使物理层连接中断也保持连接完整性的问题,防止挂起的数据包被第二个连接接收,等等。等待时间最多可以持续4分钟

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


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

我可以再问你一件事吗?我在连接WAN上的客户端和服务器时做了所有正确的事情,但我的ip是动态的,这意味着它每次都在变化,所以我创建了一个命名ip,它不是ip,但可以像winsock.connect“mynamedip.no ip.com”这样连接我的winsock吗50505'我的端口是50505,除非您的服务器位于NAT路由器后面,否则它可以工作。然后,您的路由器需要有一个端口转发规则才能正常工作。小型NAT路由器提供的公共192.168.0.0网络等专用网络无法使用正常规则进行入站路由,需要额外映射规则的帮助。我已经在50505转发了端口。问题是我建立了一个反向连接,其中服务器充当客户端,客户端充当服务器。为了让自己放心,我需要问你一个问题。我了解到,应该在服务器正在侦听的服务器计算机上打开端口b,但在客户端计算机上不需要,Winsock自己会这样做。这是真的吗??