ELECTLOGICスマートフォン用の表示で見るELECTLOGICTwitterGitHubTumblrReblogViewer記事一覧この広告は、90日以上更新していないブログに表示しています。プログラミングラジコンをLTE回線を使って制御できたら面白そうだなと思いいろいろ調べてる。Blackを遠隔操作をする事が出来るはずです。Blackをラジコンに載せればラジコンをインターネットを経由で遠隔操作できます。これには一つ問題があります。Blackに割り振られるIPv4アドレスがプライベートIPアドレスとなってしまう事です。Blackにアクセスする事は通常出来ません。Blackと直接通信する事ができます。UDPホールパンチングについては他のサイトに詳しい解説があるのでここでは省略します。そこでUDPホールパンチングを行うサーバーとクライアント(以下nodeと呼ぶ)を自分で実装しgithub.comに公開しました。GitHubholepunchの解説ビルドコマンド等についてはレポジトリ内のREADMEを参照ください。このholepunchはlibeventを使用していますのでまずlibeventをインストールしてください。次にPCを3台用意します。一つはUDPホールパンチングの仕組み上必要となるマッチングサーバーです。このサーバーだけはグローバルIPアドレスが必要です。残りの二つは実際に直接通信するPCとなります。この二つのPCは双方ともプライベートIPでも問題ありません。このholepunchの実装ではstunを使用せず独自のプロトコルで通信を行います。通信相手の識別には任意で設定可能な文字列keyを使用します。この文字列keyの一致したPC同士で直接通信をする事ができます。おおまかな通信手順nodeAがkeyをマッチングサーバーに送信マッチングサーバーは送られてきたkeyとnodeAのIPアドレスとポート番号を記録しますnodeBがマッチングサーバーにnodeAと同じkeyを送信マッチングサーバーは今までに記録されたkeyと送信されたkeyが一致するかを確認し一致すれば双方に双方のnodeのIPアドレスとポート番号を通知します。foo通信が確立したら、各nodeのターミナル上で文字を入力しEnterで入力した文字列を相手に送信する事が出来ます。(1)はてなブログをはじめよう!Stroboさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。