サーバー(私のものではない)からパケットを送受信するプログラムをDelphi 7で作成しています。パケットを送信し、パケットの受信を待ってから読み取ります。これらの手順はすべて正常に機能しますが、sendPacket 手順 (これを行う必要があります) をループするとフリーズし、ソケット エラー 10053 が発生します。これは、短期間に送信されるパケットが多すぎるためにサーバーが要求を拒否しているためだと思います。時間の。複数のパケットが同時に送信されていませんか? パケットの送信後に Sleep(1000) を入れてみました。
質問: 送信されるパケットの量を制限したり、一度に複数のパケットを送信しないようにするにはどうすればよいですか?
begin
if pack[1]='bf'
then
if pack[3]='-1'
then
Label2.Caption:='Not Found'
else
begin
found:=true;
while found=true do
begin
Pickle.sendPacket('%xt%s%u#bf%'+Pickle.intRoom+'%122868290%');
room:= pack[3];
Label2.Caption:='Found at the '+room;
if room = '-1'
then
begin
Label2.Caption:='Left the server';
found:=false;
end;
end;
end;
end;