![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
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で質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) プログラムの勉強のおすすめは 7 2022/12/09 20:09
- サーバー Googleドライブなどを使わずにテザリングAndroidでWindowsとファイル共有 1 2023/02/19 13:14
- アプリ PCでAndroidアプリを実行 BlueStacks AppPlayerが良い? 2 2022/05/10 10:36
- ネットワーク 通信量を見たい 3 2023/03/01 07:47
- Gmail 【お助け!】サーバーからのメール送信でGmailに送信されない問題について 1 2023/06/20 22:03
- 英語 This paper focuses on the literature relevant to t 2 2022/12/02 09:41
- その他(セキュリティ) これはDos攻撃になりますか? 1 2022/06/30 09:46
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- その他(プログラミング・Web制作) プログラムの起動、利用について、使用期間を設定する方法 3 2023/08/06 21:03
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
TCP/IP通信時のサーバーからの受信
-
Socket通信の0バイト受信について
-
UDP通信する時に、相手にどうや...
-
ソケットを用いた1対多通信につ...
-
ソケットのクローズについて
-
エクセル VBA でのCOMポート...
-
Javascritpでソケット通信?
-
UDP/IPでのソケット作成につい...
-
POP3S
-
Socket通信を待ち受け状態にす...
-
VC6.0ソケット通信プログラムに...
-
ネットワークプログラミング ...
-
WINSOCKのWSACleanupについて
-
C言語でチャットプログラミング...
-
どうか、POSTでのファイル転送...
-
Winsockで接続待ちタイムアウト...
-
異なる言語間でのソケット通信...
-
UDP通信におけるbind関数について
-
ソケットを閉じる操作が・・・
-
VB6のwinsockでconnectできない
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
TCP/IP通信時のサーバーからの受信
-
エクセル VBA でのCOMポート...
-
UDP通信におけるbind関数について
-
recv関数でフリーズしてしまう
-
VB6のwinsockでconnectできない
-
UDP通信する時に、相手にどうや...
-
ソケット通信 同じポート番号...
-
ソケットのrecvの戻り値が0
-
UdpClient 送信元のIPアドレ...
-
Winsockで接続待ちタイムアウト...
-
ソケットを用いた1対多通信につ...
-
ソケットでクライアントのipア...
-
ソケットのクローズについて
-
相手のIPアドレスを取得する方法
-
SIPがNATを越えられない理由
-
Socket通信の0バイト受信について
-
CreateFile関数でCOMポートが開...
-
Connectエラーが出てしまう・・...
-
同じLAN内パソコンのIPアドレス...
-
送信したデータの一部が文字化...
おすすめ情報