我的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
答案 0 :(得分:4)
我不知道你在做什么,(它解决了你的问题与否)但有一点是明确表示Android模拟器不理解localhost
或127.0.0.1
,如果你想连接localhost然后使用public IP
系统或10.0.2.2
(对于localhost)..