Delphi / C++ Builder TcpServer1Accept の使い方がおかしい件

レガシーアプリのメンテナンスをしていて、Delphi のTcpServer1Accept の使い方を調べていたのですが、インターネット上に残ってるサイトの情報がどうもおかしい

Question TCP communication issues between Delphi and c#
どのサイトも、等しくTcpServer1Accept で受信処理してるんだけど、
ワンタイムで、データ量が多い場合の処理について何も書かれていない謎
切断された場合・再接続された場合について考慮されていないというのが気になったよ ・ω・

void __fastcall TForm1::TcpServer1Accept(TObject *Sender,
TCustomIpClient *ClientSocket)
{
  char buf[4096];
  int i = 1;
  while(i){
     i = ClientSocket->ReceiveBuf(buf,4096,0); // 受信処理が終わるまで停止。切断されると 0 を返して処理が進む
     if(i)Memo1->Lines->Add(" Rcv byte: " + i); //受信時の処理
  }
}

本来はこんなコードにするのが正しい気がする ・ω・

おすすめ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です