migration
udp
cppBuilder
networkApp

C++ Builder XE4 > UDP > BCB6からの移植 (FastNetからIndy10)

動作環境
C++ Builder XE4

2013年6月25日のメモより
(+ XE4での動作に基づき修正: 2018/01/11)

C++ Builder 6 (以下BCB6)からXE4への移植時には、FastNetからIndy10への切替えが必要となる。

FastNetではNMUDPを使用していた。

変更

受信

IdUDPServer1UDPRead()において

//    NMUDP->ReadBuffer(szBuf, sizeof(szBuf), NumberBytes);

上記は以下のように変更する (エンコーディングは適宜変更)。

cmdStr = TEncoding::Default->GetString(AData, 0, AData.Length);

送信

//    NMUDP->RemoteHost = FromIP;
//    NMUDP->RemotePort = Port;
//    NMUDP->SendBuffer(cmdStr.c_str(), len, len);

    AnsiString FromIP;
    int Port;

    FromIP = ABinding->PeerIP;
    Port = ABinding->PeerPort;
    IdUDPServer1->Send(FromIP, Port, cmdStr);