0

ソケットを使用してAndroidアプリを開発しています。しかし、Socket soc=new Socket(ip,port)常に私にSocketTimeoutException. Java プロジェクトでソケットを使用していますが、問題ありません。しかし、Android プロジェクトではありません。

public static void main(String[] args) {
    try{
        Socket soc=new Socket("192.168.177.103",8888);
    }catch(Exception e){
        e.printStackTrace();
    }
}

これは問題ありませんが、Android プロジェクトではありません。なんで?

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_mmmm);

    new Thread(){
        public void run(){
            try{
                Socket soc=new Socket("192.168.177.103",8888);
            }catch(Exception e){
                e.printStackTrace();
            }
        }
    }.start();
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.activity_mmmm, menu);
    return true;
}

誰かが理由を教えてもらえますか? どうもありがとうございました。Androidでソケットを使用する場合の例外の詳細:

java.net.SocketTimeoutException: Connection timed out
at org.apache.harmony.luni.platform.OSNetworkSystem.connect(Native Method)
at dalvik.system.BlockGuard$WrappedNetworkSystem.connect(BlockGuard.java:361)
at org.apache.harmony.luni.net.PlainSocketImpl.connect(PlainSocketImpl.java:204)
at org.apache.harmony.luni.net.PlainSocketImpl.connect(PlainSocketImpl.java:183)
at java.net.Socket.startupSocket(Socket.java:732)
at java.net.Socket.tryAllAddresses(Socket.java:152)
at java.net.Socket.<init>(Socket.java:211)
at java.net.Socket.<init>(Socket.java:178)
at com.example.mmmmm.MMMMActivity$1.run(MMMMActivity.java:26)
4

1 に答える 1

0

サーバー 192.168.177.103 がタイムリーに応答しないか、まったく応答しません。ポート 8888 がファイアウォールによって閉じられている可能性もあります。したがって、これは実際には Android デバイスの問題ではありません。

返されたコンテンツが HTTP ベースの場合、同じ LAN に接続されたデスクトップ PC を使用して、サーバーが通常のブラウザ リクエストに応答するかどうかを確認します。また、試してみてください

 adb shell ping 192.168.177.103

これにより、サーバーにアクセスできるかどうかを確認できます。ただし、特に Windows マシンの場合は、サーバーで ping が無効になっている可能性があります。

有線ネットワークを介して接続されたデスクトップからサーバーにアクセスできるが、Android からはまだアクセスできない場合は、ワイヤレス ルーターのファイアウォールがどのように構成されているかを確認することをお勧めします。

于 2013-01-14T12:22:51.900 に答える