AYU MAX

プログラミングとか作ったもの

ObjectDeliverer Ver 1.4.0リリース 送信元IPアドレスの取得機能追加

ObjectDeliverer Ver 1.4.0

f:id:ayuma0913:20190731231924p:plain

数日前の話ですがObjectDelivererの新バージョンをリリースしました。 (ブログ書こうと思って忘れてた)

www.unrealengine.com

送信元IPアドレスの取得機能追加

通信プロトコルをTCP/IP Server もしくはUDP Receiverにしている場合にのみ使用可能な機能です。

これら2つの通信プロトコルでは、送信元が複数のIPアドレスの可能性があります。

ただし以前のバージョンまではどこからの送信だったのかを知るすべがありませんでした。 (TCP/IP Serverには厳密には送信元を区別して認識する機能はありましたが、IPアドレスを知る機能はありませんでした)

これはObjectDelivererの設計思想の「異なる通信プロトコルを同じように切り替えて使える」を実現するために、あまり個別のプロトコルに特化した機能は入れたくなかったというのがあります。

ただ現実的にないと困ることもあり、今回実装しました。

以下仕様例です。

https://user-images.githubusercontent.com/8191970/66717219-6ce03b00-ee11-11e9-91fc-a831a770d8fe.png

ReceiveDataイベントのClientSocketオブジェクトをGetIPV4Infoインターフェイスを通して使うことで情報の取得ができます。

今回追加したGetIPV4InfoインターフェイスにはIPアドレスをuint8の要素数4の配列で取得するGetIPAddressと"..."の文字列形式で取得するGetIPAddressinStringがあります。

対応している通信プロトコル以外ではReceiveDataイベントのClientSocketオブジェクトがGetIPV4Infoインターフェイスを実装していないため、インターフェイスへのキャストで失敗します。

今後もなるべく同じように使えるというコンセプトは崩したくないですが、個別プロトコル固有の機能はインターフェイス経由で使えるようにしていこうと思います。