サーバーソケット API を介して Java ベースの Android アプリをフレックス (AIR) アプリケーションに接続しようとしていますが、接続中に常にタイムアウトします。
ここに私のフレックスコードがあります:
public function ConnectionManager(address:String, port:Number)
{
var server:ServerSocket = new ServerSocket();
try{
server.addEventListener(Event.CONNECT, onConnect);
server.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onSecError);
server.bind(port);
server.listen();
}
ポート2000で127.0.0.1に接続します
Java 側:
public class TCPConnection {
/** Debug Tag */
private static final String TAG = TCPConnection.class.getName();
private Socket socket;
private int port;
private String host;
public TCPConnection(String host, int port) {
this.port = port;
this.host = host;
this.connect();
}
private void connect() {
System.out.println("Trying to establish socket at "+host+":"+port);
try {
this.socket = new Socket(host, port);
} catch (Exception e) {
e.printStackTrace();
}
}
}
エラー:
05-24 12:21:24.043: WARN/System.err(28797): java.net.SocketTimeoutException: トランスポート エンドポイントが接続されていません
これはセキュリティ サンドボックスの問題ですか? デバイスと AIR アプリが同じローカル ネットワーク内にある。