アプリ版:「スタンプのみでお礼する」機能のリリースについて

Androidでソケット通信するプログラムを作っています。

PC側がソケットサーバーをたてて(accept)、
Android側でクライアントとして接続(connect)するようにしています。

connectを実行している部分のソースは以下のようにしています。

-----------------
String ip = "192.168.XX.XX"; <-PCのIPアドレス
int port = 9999;

socket = new Socket();
InetSocketAddress addr = new InetSocketAddress(ip, port);
try{
socket.connect(addr);
return true;

}catch(IOException e){
e.printStackTrace();
return false;
}
------------------

上記やり方でまずはエミュレータで試したところうまく行きました、その後
実機に入れて同じように実行したところconnectのところで例外が飛んできます。
メッセージは"no route to host"でした。

実は全く同じソースで以前は実機でもできていたはずなんですが、
最近試したところできなくなっているようでした。

Android端末はXperia Arcですが、OSを2.3.4にバージョンアップしたことくらいで
以前と特に変わったところはないと思うのですが

原因として何が考えられるでしょうか?
よろしくおねがいします。

A 回答 (2件)

無線LANで接続してないからですよ。



通常はUSBでの通信はフラッシュメモリと同じ扱いなので。

もし本当にUSBで以前できたなら擬似ロケーションの設定等をみてください。

この回答への補足

alice_asahinaさん、おっしゃる通り携帯のWIFIを有効にしたら
USBなんか繋がなくてもPCに接続できました。

ということは、
USBでAndroidからPCへの通信はできないということですね。


その逆の、PCからAndroidへの転送は
adbのポートフォワード機能を利用してできることはわかっているのですが。
参照http://devdroid.blog.fc2.com/blog-entry-48.html

ありがとうございました。

補足日時:2011/12/20 21:30
    • good
    • 0
この回答へのお礼

むむう・・そういうことか。

以前USBで通信できていると思っていたのが実は
家庭内の無線LANを通じて繋がっていたということか。。家帰って試してみます。

ただ、それと擬似ロケーションとはどういう関係があるのですか?

お礼日時:2011/12/20 14:19

サーバー側のPCのIPアドレスが変わっていたりしませんか?


(DHCPサーバーが当該PCに固定アドレスを貸し出すようになっていますか?)
    • good
    • 0
この回答へのお礼

ありがとうございます。
PC側のIPアドレスは事前にipconfigで調べた値を入れています。
なのでアドレスは間違ってないと思うんですよね。
ちなみにPCとAndroid実機はUSBケーブルで繋がっています。

お礼日時:2011/12/20 08:14

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!