gpt4 book ai didi

api - UDP 使用套接字 API

转载 作者:行者123 更新时间:2023-12-03 12:01:43 24 4
gpt4 key购买 nike

我的服务器使用 UDP。它在被获取后自动向我的程序发送 900bytes/1ms。我在 Windows (VB6) 中使用套接字 API。我做了一个测试,我知道我的程序的消息处理时间(大约 0.3ms)比循环时间(1ms)短。所以原因应该是socket内部缓冲区。我尝试调用setsockopt设置更大缓冲区的函数:

setsockopt(SockNum, SOL_SOCKET, SO_RCVBUF, SockBuffer(1), 1048576)

但我仍然丢失了数据。我该如何解决我的问题?
我正在使用 recv接收数据的功能。应该 recvfrom会更好?

此外,我需要为 UDP 创建一个 FIFO 缓冲区。我怎么能这样做(即算法或示例)?

最佳答案

在您的问题中,您似乎在提示使用 UDP 并丢失数据。

如果您使用 UDP,您将丢失数据。避免丢失数据的方法是使用 TCP,而不是 UDP。如果您尝试采用用户数据报协议(protocol)并向其添加可靠的数据传递,您最终将得到具有 TCP 的所有流控制和数据窗口的东西......除了它不会被实现以及你要。

请记住,“那些不了解 TCP 的人注定要重新发明它……糟糕”

关于api - UDP 使用套接字 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2085060/

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