ソケット通信とか遠回りで考えていたけど、HTTPのGETはあっさり動いた(^_^;)
WWWはここに仕様がある。バイナリのダウンロードもできる模様(完了も判る)
Unity - Scripting API:
ローカルの自宅サーバーのCGIにURL引数付きで投げた例
別にルーターの外でも問題ない。
using UnityEngine; using System.Collections; public class Main : MonoBehaviour { void Start () { StartCoroutine( GET("http://192.168.1.26/memo/unity.cgi?a=get&k=name") ); } IEnumerator GET(string url) { WWW www = new WWW(url); yield return www; if (www.error == null) { Debug.Log(www.text); } else { Debug.Log("fail"); } } }
サーバーサイドはperlで書いたCGIだが、DBはKeyValue型のTokyoCabinetというメモリ型DBを用いている。(うちの24H稼動サーバーでは大変お世話になっている)
#!/usr/bin/perl use CGI::Carp qw(fatalsToBrowser); use CGI; use Jcode; use TokyoTyrant; our $cgi = CGI->new; print CGI::header(-charset=>"utf-8"); our $key = $cgi->param('k'); our $value = $cgi->param('v'); our $act = $cgi->param('a'); our $tb = TokyoTyrant::RDB->new(); $tb->open( "localhost", ポート番号は秘密です); if($act eq "set") { $tb->put( $key , $value ); } if($act eq "get") { $value = $tb->get( $key ); print $key."<>".$value."\n"; } $tb->close(); exit;