gpt4 book ai didi

c++ - 从客户端接收消息时如何解决窗口卡住问题(无响应)?

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

我在我的 C++ 代码中使用 SFML。我的问题类似于这个问题 ( SFML TCP packet receive ),但由于答案不令我满意,我决定提出一个新问题。

在我的代码中,服务器和客户端需要交换确认消息才能继续程序的下一阶段。但是,当服务器期望从客户端接收消息时,窗口因显示“Not Responding”而卡住,我该如何解决?我已经让 setBlocking 变量为 false。

我的代码如下:

sf::Socket::Status status;
string msg;
if (isServer)
{
do {
status = host.receiveMessage(msg);
} while (status != sf::Socket::Done || msg!= "done1");

status = host.sendMessage("done1");

}
else
{
do {
status = host.sendMessage("done1");
} while (status != sf::Socket::Done);

do {
status = host.receiveMessage(msg);
} while (status != sf::Socket::Done || msg!= "done1");
}

最佳答案

你应该创建一个额外的线程来与客户端通信。或者使用另一种套接字模型,当传入数据可用时,窗口会收到一条消息。

关于c++ - 从客户端接收消息时如何解决窗口卡住问题(无响应)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18682649/

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