魔法のハコはつないだだけでつながる。 よく家電とか、、プリンタとか、ネットワークケーブルをつないだだけで使えるものがある。 あれみたいなものだ。 つながるということは、 こっちから見つけに行く 向こうから見つけてもらう のどちらかだ。 魔法のハコクライアント(MHC)は、魔法のハコサーバ(MHS)に見つけてもらうということで考える。 実際には、【MHCがネットワークにつながったとき、マルチキャストパケットをLOCALネットワーク上に投げて、MHSにキャッチしてもらう】という方法にする。 実際には、 (1)MHSがUDPでマルチキャストパケットを受け取るようにしておく。 (2)MHCがマルチキャストを投げる。 (3)MHSがマルチキャストを受け取り、投げ元のIPに対して、TCPでMHCに情報を送る。 UDPはマルチキャストパケットの時のみ使用。そのあとは、互いのIPがわかるので、TCP/IPででれでれ情報交換するという形である。 その後、MHCはWebSocketでMHSとつながることになる。 クライアントの方はPHPで書くとこんな感じ。 試しにJSONをbase64して送っているけど、とりあえず今は使っていない。 $udp_port = 41900; $tcp_port = 41901; $sock = socket_create( AF_INET, SOCK_DGRAM, SOL_UDP ); socket_set_option( $sock,IPPROTO_IP,MCAST_JOIN_GROUP, array( 'group'=>'239.255.255.250', 'interface'=>0 )); $msgAR = array(); $IP = getHostByName(getHostName()); $msgAR["system"]["ip"] = $IP; $msgAR["system"]["type"] = "checker"; $msg = json_encode($msgAR); $a6...
IoTとIoEとRaspberryPiとArduinoとServerをつなぐ魔法のハコとその周辺。でもC++と組版とグラフィックスもちょっと復活。