簡體   English   中英

SFML TCP套接字發送導致滯后尖峰

[英]SFML TCP Socket Sending causes lag spikes

以30 FPS(應為每秒)的速度調用每一幀,但是每10秒鍾左右就會發生一次巨大的延遲。 尖峰往往持續5秒鍾,然后再次平穩運行。 我究竟做錯了什么?

socketsSent++;
sf::TcpSocket socket;
socket.connect(ip, atoi(serverInfo[5].c_str()));
std::string data;
data = "X:" + std::to_string((int)objects["player"].getPosition().x) + ":Y:" + std::to_string((int)objects["player"].getPosition().y);
socket.send(data.c_str(), data.length() + 1);

在這些呼叫之間保持連接打開。 TCP連接需要交換三個數據包,而斷開連接則需要四個數據包,因此,如果每次連接和斷開連接,您的數據包開銷最多為7倍。

但是,它不是實時協議。 您必須在這里和那里都有些滯后。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM