-1

のサーバーとのpython側に接続していません。何らかの理由で、ソケットがリモートサーバーに接続していません。私はサーバーのIPアドレスとサーバーがリッスンしているポートを使用しています。誰かが私を助けることができれば、それは素晴らしいことになるでしょう。Androidのエミュレータ:ソケットは、私は2つの質問、</p> <p>まず、私はそれからイメージをダウンロードするにはPythonのサーバーに接続するAndroidのエミュレータを実行しているを持っているのHTTPClient

編集:apkファイルをエクスポートして、アプリを携帯電話にインストールしました。それでも動作しません。

マイコード:

ip = InetAddress.getLocalHost(); 
InetAddress serverAddr = InetAddress.getByName("56.249.79.139"); 
int port2ConnectDefault = 8002; 
Socket socket; 
BufferedReader in; 
PrintWriter out; 
//System.out.print(ip.getHostAddress()); 
Log.v("Check_insert", "got in"); 
socket = new Socket(serverAddr, port2ConnectDefault); 
Log.v("Check_insert", "got in2"); 
System.out.println("Connected to server...sending echo string"); 

私はログ "になった" ではなく "Check_insert" は、「IN2を得た、 "Check_insert" を取得

第二に、その後にソケットを使用して、他のどのような方法があります。私はokhttpに見えたが、私は、これはPythonの側でワークアウトする方法を見つけ出すことができませんでした?IPアドレスとポート番号を使用してPythonのサーバーからAndroidのクライアントのダウンロードイメージを持っている。

おかげでたくさん!

+0

'私はPythonサーバーに接続するAndroidエミュレータを実行しています。そうは思わない。そのようなことをしようとするエミュレータを見たことはありません。 – greenapps

+0

エミュレータはPythonサーバーに接続できません。 – Student

+0

これは私が問題を抱えているからです。 – Student

答えて

0

あなたはAsynTaskやThreadについて言及していないので、私はあなたの最初の問題はおそらく私と同じだと思います。詳細はhereです。要約すると、主なスレッドでネットワーク操作を実行していたためです。これは、後のAndroidバージョンでは許可されていません。 socket = new Socket(serverAddr, port2ConnectDefault);からスローされた例外をチェックすると、 "android.os.NetworkOnMainThreadException"と表示されます。この問題を解決するには、スレッドまたはAsyncTask を使用できます。たとえば、

public class MainActivity extends AppCompatActivity { 
    Socket socket; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     new Thread(new Runnable() { 
      @Override 
      public void run() { 
       try { 
        socket = new Socket(ServerIP, Port); 
       } catch (Exception e) { 
        e.printStackTrace(); 
       } 
      } 
     }).start(); 
    } 
} 

PS:Androidエミュレータは、(リモート)Pythonサーバーにも接続できます。それが役に立てば幸い。

関連する問題

 関連する問題