gpt4 book ai didi

c++ - 如何在udp c++​​中发送和接收大量数据

转载 作者:太空宇宙 更新时间:2023-11-04 11:28:10 25 4
gpt4 key购买 nike

我正在尝试使用以下代码在 udp c++​​ 中一次发送和接收大量数据。我一次只能发送 16000 位,字符。如何在不关闭套接字的情况下发送/接收数百万字节的数据?

//sends the data contained in aliceBuf, which is, char of size 16000. 

if (sendto(aliceSocket, aliceBuf, strlen(aliceBuf), 0, (struct sockaddr *)&bobAddr, sizeof (bobAddr)) == -1) {
perror("sendto");
exit(1);
}

// receiver code: it is receiving just 16000 char.

recvlen = recvfrom(aliceSocket, aliceBuf1, receiveBuffer, 0, (struct sockaddr*)&bobAddr, &bobAddrSize);

if (recvlen >= 0) {
aliceBuf1[recvlen] = 0; /* expect a printable string - terminate it */
}

最佳答案

您可以一次发送大量数据,但您必须问自己的问题是:接收方如何知道预期有多少数据?

我通常通过在数据前加上长度来显式编码长度,然后接收器循环直到到达该数量的数据,或者通过某种数据结束标记来处理这些情况,例如“C”字符串或更隐含地类似于 json 数据,接收器循环在数据本身中寻找某些东西。

关于c++ - 如何在udp c++​​中发送和接收大量数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25868392/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com