从android设备上运行的客户端连接到tcp服务器

从android设备上运行的客户端连接到tcp服务器

问题描述:

我想从Android设备的tcp客户端应用程序连接到独立桌面tcp服务器(java)。从android设备上运行的客户端连接到tcp服务器

但我无法连接到。

我试图写一个桌面tcp客户端,并试图连接到服务器(远程服务器)。它工作正常。

但是当我尝试从android连接时,创建Socket实例时出现IOException。

任何人都可以帮助我吗?在此先感谢....

确定...目前我们正在通过检查每n秒的连接来完成此操作。

Timer.scheduleAtFixedRate(new TimerTask() { 
public void run() { 
..... 
} 
} 

但是,我还是想知道是否有什么办法让喜欢在插座连接回调输了...

+0

你应该自己回调。当套接字关闭时,socket.getInputStream()。read()将返回-1,所以当你的'读线程'遇到这个时,你可以调用你自己的回调函数。但是,是的,我希望这样的回调有时也可以构建:)。 – MrSnowflake 2010-03-17 16:08:59

+0

嗨,感谢您的评论,问题是 在空闲模式下,如果我想检查套接字状态,我不能做socket.getInputStream.read()从服务器读取,因为它可能不会在空闲模式下发送任何东西。所以,我使用socket.getOutputStream()。write()写入,同时我可以检查套接字状态。但仍然采用这种方法,我在N/W上做了不必要的流量,并且我的应用程序消耗了更多的CPU。 我见过一个API socket.isConnected(),但不幸的是它在服务器端关闭套接字连接时给出了正确的结果。 请让我知道,如果你遇到任何解决方案。谢谢 – Andhravaala 2010-03-18 00:38:43

我回答我的问题:)

现在,我能够连接到我从客户在Android设备上运行PC上运行的服务器。

的问题是,

我在PC上运行的服务器连接到不同的IP N /比我的手机使用的Wi-Fi无线N/W W。因此,即使我在客户端提供相同的IP地址以连接到服务器,也无法连接,因为IP地址与IP N/W是相对(本地)。

因此,如果我们使用服务器的相对IP,我们需要确保服务器和客户端运行的设备应该通过相同的IP N/W进行连接。

这是一个愚蠢的问题和愚蠢的错误和愚蠢的答案。 :)

+0

大家好,我需要知道的一两件事。我需要继续检查套接字的健康状况(是否活着)。 为此,我继续向服务器的外流写入1个字节的数据。 有了这个,我可以监视连接。但我保持这种无限循环,因为我需要永远检查。它消耗更多的CPU周期。而不是有什么办法来检查连接状态? 在此先感谢.. – Andhravaala 2010-02-26 00:48:04