Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/153.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
C++ Qt,tcp/ip通信校验和_C++_Qt_Sockets_Tcp - Fatal编程技术网

C++ Qt,tcp/ip通信校验和

C++ Qt,tcp/ip通信校验和,c++,qt,sockets,tcp,C++,Qt,Sockets,Tcp,我正在编写一个数据显示程序,通过串口接收数据。《聆听者》是别人写的,非常复杂。现在,我需要将接收到的数据传输到另一个程序/pc。因此,我正在考虑从Qt进行标准tcp通信。 tcp类中有并没有像校验和那个样工作的类? 如果我发射一个阵列,每次10倍,但频率很高。如果不编写那些复杂的算法来检查接收到的数据字节的有效性,如何编写一个正确接收所有数据的客户端?TCP/IP将这些检查作为协议本身的一部分。这包括对数据完整性的保证,以及对数据的正确重新组装(即数据的顺序肯定相同)。您提到TCP将数据流分割成

我正在编写一个数据显示程序,通过串口接收数据。《聆听者》是别人写的,非常复杂。现在,我需要将接收到的数据传输到另一个程序/pc。因此,我正在考虑从Qt进行标准tcp通信。 tcp类中有并没有像校验和那个样工作的类?
如果我发射一个阵列,每次10倍,但频率很高。如果不编写那些复杂的算法来检查接收到的数据字节的有效性,如何编写一个正确接收所有数据的客户端?

TCP/IP将这些检查作为协议本身的一部分。这包括对数据完整性的保证,以及对数据的正确重新组装(即数据的顺序肯定相同)。您提到TCP将数据流分割成数据包;这是正确的,但它将在接收端以正确的顺序重新组装数据包,或者在需要时请求重新传输。所有这些都由Qt网络类负责。

完整性检查内置于TCP/IP中。TCP保证数据,如果它被接收的话,是完整的和有序的。所以我每次只读取10倍?但这是否意味着,一旦数据以某种方式发生了移动(例如,如果套接字中还有一些数据),我就再也不会正确地处理它了?我不确定我是否完全理解了困难的本质。“移位”是什么意思?如何转移,在哪里转移,由谁转移?好吧,tcp将数据流分割成数据包?所以,我只是连续接收所有数据包,然后每8*10字节(10倍)解码一次?我不熟悉套接字编程,但仍然对教科书中的说法感到困惑……所以,总是安全地通过tcp套接字每隔10次读取一次?是的,但您不能假设会同时接收所有值。关于如何处理这样的事情,我建议看一下Qt Fortune服务器示例。在本例中,它显示了如何接收文本,但您可以轻松地将其更改为QByteArray或类似的内容。