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); //受信時の処理 } } |
本来はこんなコードにするのが正しい気がする ・ω・
Comments