无法从Android应用访问Cassandra服务器。错误:java.net.ConnectException:localhost / 127.0.0.1:9160 - 连接被拒绝

时间:2011-12-14 10:52:39

标签: android cassandra thrift connectexception

我的Adnroid应用程序在AVD上运行,Cassandra服务器在Windows 7上运行(同一台机器)下面是我用来连接Cassandra客户端的代码片段。

TTransport tr = new TFramedTransport(new TSocket("127.0.0.1", 9160));
TProtocol proto = new TBinaryProtocol(tr);
Cassandra.Client client = new Cassandra.Client(proto);
tr.open();

我试过调试;它使用isClose()=' false'创建套接字。 (这意味着套接字已打开)但进一步无法连接(TSocket.open())

-------------------------来自org.apache.thrift.transport.TSocket的代码----------- ---------

try {
socket_.connect(new InetSocketAddress(host_, port_), timeout_);
inputStream_ = socket_.getInputStream();
outputStream_ = socket_.getOutputStream();
} catch (IOException iox) {
close();
throw new TTransportException(TTransportException.NOT_OPEN, iox);

}

这似乎是跨平台和Windows操作系统的问题(因为Android应用程序在Linux上)。有没有更好的方法可以从Android应用程序连接到Cassandra服务器? 你的帮助和时间非常受欢迎。

由于 Randeep

1 个答案:

答案 0 :(得分:4)

我不知道你在做什么,(它解决了你的问题与否)但有一点是明确表示Android模拟器不理解localhost127.0.0.1,如果你想连接localhost然后使用public IP系统或10.0.2.2(对于localhost)..