C++ コードで SFML を使用しています。私の問題はこの質問 ( SFML TCP パケット受信) に似ていますが、答えが満足できないので、新しい質問をすることにしました。
私のコードでは、サーバーとクライアントは、プログラムの次の段階に進むために確認メッセージを交換する必要があります。ただし、サーバーがクライアントからのメッセージを受信することを期待している場合、ウィンドウは「応答していません」と表示されてフリーズします。これを解決するにはどうすればよいですか? 私はすでに 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");
}