ファイル転送でフリーズする…場合があります
次の版向けの修正をテストしていたら、Qt Brynhildrからサーバにファイルを転送(送信)する時にフリーズすることがあることが分かりました。サーバからQt Brynhildrへのファイル転送(受信)では問題ありません。
socketのsend()でファイルをすべて転送し終わってもサーバがまだデータを待っているらしくキーボード/マウスの操作情報が送れなくなり、事実上操作不能となります。この場合とりあえずQt Brynhildrを一旦終了し、接続し直せば正常に操作可能になります。
この現象に関してBrynhildrの作者さんに連絡を取り、フリーズ条件などを確認して頂きました。
で、原因が先ほど判明しました。詳細は省きますが、技術的な仕様により、一度に送るデータのサイズは常に16バイト以上である必要があるのだそうです。つまりフリーズする条件は以下のようになります。
ファイルサイズ mod 1024 が 16 より小さい時
例えば、8193バイトのファイルを送ろうとすると
8193 mod 1024 = 1 となり上記の条件を満たしてしまいます。
対策として Ver.1.5.1 の置き換え版もしくは、Ver.1.5.2 のリリースを検討中です。
« Ver.1.5.1 リリース | トップページ | Ver.1.5.2 リリース »
コメント