Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.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
Sockets 客户端端口随每个请求而变化 我试图用C++在控制器(客户端)和PC机(服务器)中建立一个TCP/IP连接,我使用嗅探器来查看客户机的请求是如何发送的,并且我发现每个控制器的连接请求都是从一个不同的端口和已知的IP发送的,它以随机端口号开始,每个请求递增1,直到我重新启动控制器或服务器收到请求,我有一些问题_Sockets_Client - Fatal编程技术网

Sockets 客户端端口随每个请求而变化 我试图用C++在控制器(客户端)和PC机(服务器)中建立一个TCP/IP连接,我使用嗅探器来查看客户机的请求是如何发送的,并且我发现每个控制器的连接请求都是从一个不同的端口和已知的IP发送的,它以随机端口号开始,每个请求递增1,直到我重新启动控制器或服务器收到请求,我有一些问题

Sockets 客户端端口随每个请求而变化 我试图用C++在控制器(客户端)和PC机(服务器)中建立一个TCP/IP连接,我使用嗅探器来查看客户机的请求是如何发送的,并且我发现每个控制器的连接请求都是从一个不同的端口和已知的IP发送的,它以随机端口号开始,每个请求递增1,直到我重新启动控制器或服务器收到请求,我有一些问题,sockets,client,Sockets,Client,1-这是一种标准行为吗?知道控制器是三菱控制器后,这背后的想法是什么 2-是否有任何方法可以在不使用accept的情况下获得控制器的新端口?这与其说是控制器的行为,不如说是控制器上运行的网络堆栈,可以集成到控制器硬件中(搜索关键字:TCP卸载) 这是预期的行为。为了防止各种恶劣的副作用,一个简单的例子是来自前一个连接的延迟数据包试图作为合法数据包潜入后一个连接,在使用端口的套接字关闭后,端口在很长一段时间内不会被回收再使用。您的端口可能无法使用。一个简单的解决方案是完全按照OP的网络堆栈所做的操

1-这是一种标准行为吗?知道控制器是三菱控制器后,这背后的想法是什么


2-是否有任何方法可以在不使用accept的情况下获得控制器的新端口?

这与其说是控制器的行为,不如说是控制器上运行的网络堆栈,可以集成到控制器硬件中(搜索关键字:TCP卸载)

  • 这是预期的行为。为了防止各种恶劣的副作用,一个简单的例子是来自前一个连接的延迟数据包试图作为合法数据包潜入后一个连接,在使用端口的套接字关闭后,端口在很长一段时间内不会被回收再使用。您的端口可能无法使用。一个简单的解决方案是完全按照OP的网络堆栈所做的操作:按顺序分配下一个端口号

  • 不适用于BSD样式的套接字<代码>接受接受与客户端的连接。如果您不接受,您将无法获得一个套接字来处理连接,使用该套接字,您不应该关心端口是什么。这一切都被抽象出来,隐藏在看不见的地方


  • 如果这是一个问题,考虑使用像UDP那样的无连接协议。当检测到数据包丢失以及TCP为您做的所有其他好事时,您不会得到自动重新传输,但是没有连接开销。

    这与其说是控制器的行为,不如说是控制器上运行的网络堆栈,可以集成到控制器硬件中(搜索关键字:TCP卸载)

  • 这是预期的行为。为了防止各种恶劣的副作用,一个简单的例子是来自前一个连接的延迟数据包试图作为合法数据包潜入后一个连接,在使用端口的套接字关闭后,端口在很长一段时间内不会被回收再使用。您的端口可能无法使用。一个简单的解决方案是完全按照OP的网络堆栈所做的操作:按顺序分配下一个端口号

  • 不适用于BSD样式的套接字。
    accept
    接受与客户端的连接。如果不接受,则无法获得用于处理连接的套接字,而使用该套接字,则不应关心端口是什么。所有端口都被抽象掉并隐藏在视线之外


  • 如果这是一个问题,考虑使用像UDP那样的无连接协议。当检测到数据包丢失时,你不会得到自动重传,TCP为你做了所有其他好的事情,但是没有连接开销。

    期望的行为。想想如果客户端总是使用同一个POR,可能会发生的所有故障情况。t号。一个简单的问题是,来自上一个连接的延迟数据包试图作为新连接的合法数据包潜入。如果源端口已修复,当客户端尝试同时与同一服务器建立两个连接时会发生什么情况?我明白了,这是如何在代码中引入错误的,如果套接字因任何原因而关闭,我必须这样做强制控制器发送一个新的请求或通信将不被建立,这是不可用的。TimeTCP是面向连接的通信协议。如果连接被中断和丢失,则必须重新建立连接。如果不需要连接或想要管理连接,则考虑UDP。elf。预期行为。请考虑如果客户端始终使用相同的端口号可能发生的所有故障情况。一个简单的情况是,来自前一个连接的延迟数据包试图作为新连接的合法数据包潜入。如果源端口已修复,当客户端尝试同时进行两个连接时会发生什么情况连接到同一台服务器?我明白了,它是如何在代码中引入错误的,如果套接字因任何原因关闭,我必须强制控制器发送一个新的请求,否则通信将无法建立,并且这不是一直可用的TCP是一个面向连接的通信协议。如果连接中断和丢失,连接必须重新建立。如果不需要连接或想自己管理连接,请考虑UDP。