![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67b6d)
Androidでソケット通信を行いたいなのですが
エミュレータ環境でも実機環境でもうまく動作しません。
何かを送信するまでもなくソケット作成の時点で落ちてしまいます。
通常のJavaプログラム間でなら通信できるのですが、何かやり方が間違っているのでしょうか?
(1)PC側でJavaのサーバプログラムを起動しておく。
(2)Androidのエミュレータあるいは実機で起動
(3)Androidのボタンを押してソケット作成(下記プログラムが実行される)
(4)Android側が強制終了する
以下の単純なプログラムを使用しています。
また、IP、Portは正しくファイアウォールも無効にしています。
Socket socket = null;
try {
socket = new Socket("***.***.***.***", ****);
} catch (UnknownHostException e) {
System.err.println("Don't know about host");
} catch (IOException e) {
System.err.println("Couldn't get I/O for the connection to host");
}
No.3ベストアンサー
- 回答日時:
投げられている例外名 NetworkOnMainThreadException でぐぐったらこんなページが出てきました。
たぶんこれが原因でしょう。http://garnote.com/2012/10/android-os-networkonm …
No.2
- 回答日時:
at java.net.Socket.startupSocket(Socket.java:566)
at java.net.Socket.tryAllAddresses(Socket.java:108)
at java.net.Socket.<init>(Socket.java:177)
at java.net.Socket.<init>(Socket.java:149)
これらは例外のスタックトレースなので、
そもそもこれらが発生した原因がIOExceptionのgetMessage()などから取得できるはずです。
単純に、e.printStacktrace()を行なってください。
この回答への補足
初心者ですみません。。
e.printStacktrace()の結果で
FATAL EXCEPTION: main
android.os.NetworkOnMainThreadException
の後に
at java.net.Socket.startupSocket(Socket.java:566)
at java.net.Socket.tryAllAddresses(Socket.java:108)
at java.net.Socket.<init>(Socket.java:177)
at java.net.Socket.<init>(Socket.java:149)
のログが続きます。
No.1
- 回答日時:
例外メッセージ(IOExceptionの方)を取得し、表示した方がいいです。
そこ中に原因が書かれていませんか?
この回答への補足
at java.net.Socket.startupSocket(Socket.java:566)
at java.net.Socket.tryAllAddresses(Socket.java:108)
at java.net.Socket.<init>(Socket.java:177)
at java.net.Socket.<init>(Socket.java:149)
などが出ています。
IPが間違っている、あるいはサーバーがうまく機能していないのでしょうか?
エミュレータがクライアントの場合、サーバーのIPは127.0.0.1か192.168.***.***(PCのIP)でいいのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・「I love you」 をかっこよく翻訳してみてください
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・昔のあなたへのアドバイス
- ・かっこよく答えてください!!
- ・あなたが好きな本屋さんを教えてください
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・【大喜利】【投稿~8/27】 こんなガソリンスタンド二度と来るか!なぜそう思った?
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・【お題】動物のキャッチフレーズ
- ・【お題】甲子園での思い出の残し方
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・自分用のお土産
- ・人生で一番お金がなかったとき
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・ちょっと先の未来クイズ第1問
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ソケットのクローズについて
-
Winsockで接続待ちタイムアウト...
-
ソケットを用いた1対多通信につ...
-
ソケットのrecvの戻り値が0
-
TCP/IP通信時のサーバーからの受信
-
UDP通信におけるbind関数について
-
サーバーソケットを開いたまま...
-
recv関数でフリーズしてしまう
-
非ブロッキングソケットのrecv...
-
Connectエラーが出てしまう・・...
-
ソケットでクライアントのipア...
-
WINSOCKのWSACleanupについて
-
同じLAN内パソコンのIPアドレス...
-
VB6のwinsockでconnectできない
-
プロセス間通信について
-
エクセル VBA でのCOMポート...
-
winsockを使った通信での同時接...
-
winsockでファイル転送
-
UdpClient 送信元のIPアドレ...
-
UDPの接続って?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
TCP/IP通信時のサーバーからの受信
-
エクセル VBA でのCOMポート...
-
VB6のwinsockでconnectできない
-
Socket通信の0バイト受信について
-
recv関数でフリーズしてしまう
-
ソケットのrecvの戻り値が0
-
UDP通信におけるbind関数について
-
Winsockで接続待ちタイムアウト...
-
UDP通信する時に、相手にどうや...
-
UdpClient 送信元のIPアドレ...
-
ソケット通信 同じポート番号...
-
ソケットのクローズについて
-
空きポートの取得方法
-
Winsockを使わずにVBでSocketを...
-
ソケットでクライアントのipア...
-
ソケット通信
-
ソケットを用いた1対多通信につ...
-
ソケットとそれに基づくストリ...
-
CreateFile関数でCOMポートが開...
-
WinSockでの通信プログラムがう...
おすすめ情報