07/11/22 15:21:04
C++Builder2007のIndy10でここの>>271-276を参考に
IdUDPServer使ってやろうとしたんだが、ADataの型が変わっててorz
とりあえずは作ってみたがスマートじゃないからなんか納得いかず…
static char buff[MAX_DATA];
void _fastcall TForm1::IdUDPServer1UDPRead(TObject *Sender, TByte AData, TIdSocketHandle *ABinding)
{
for(int i = 0; i < MAX_DATA; i++) buff[i] = '\0';
for(int i = 0; i < AData.Length; i++) buff[i] = AData[i];
~受信処理~
}
他にいいやり方ってありますか?
あと、1回でも受信をすると、終了時にデバッガ例外通知として
EIdSocketError(メッセージ'Socket Error#10004 Interrupted system coll.')
が出てくるが、これの詳細or出なくする方法はありますか?
イベントログを見ると、受信した際にスレッドの開始とあるから、
予想では内部のスレッドで受信待ち状態になってると思うのだが…