2016-12-18 12 views
-1

私はAndroidアプリケーションを開発しており、アプリケーションからJavaサーバーにメッセージを送信する必要があります。AndroidクライアントからJavaサーバーにメッセージを送信

のJava Serverは、このように動作します:彼らは以来、私は成功し、エミュレータと自分の携帯電話にメッセージを送ることができ

mt = new Thread() { 
      public void run() { 

       try { 
        Socket socket = new Socket("192.168.1.100", 7000); 
        DataOutputStream dos = new DataOutputStream(socket.getOutputStream()); 
        dos.writeUTF(song_field.getText().toString()); 
        dos.flush(); 
        dos.close(); 
        socket.close(); 
       } catch (IOException e) { 
        e.printStackTrace(); 
       } 

      } 
     }; 
     mt.start(); 
     Toast.makeText(context, "Your Message is sent. Thank you!", Toast.LENGTH_SHORT).show(); 

:私のアプリケーションで

thread = new Thread(){ 
      public void run(){ 

       System.out.println("Server is running..."); 

       try { 
        ServerSocket socket = new ServerSocket(7000); 
        while(true){ 
         Socket s = socket.accept(); 
         DataInputStream dis = new DataInputStream(s.getInputStream()); 
         System.out.println("Received from client: " + dis.readUTF()); 
         dis.close(); 
         s.close(); 
        } 
       } catch (IOException e) { 
        e.printStackTrace(); 
       } 

      } 
     }; 
     thread.start(); 

が、私はこのようにメッセージを送ります同じWi-Fi接続に接続されていますが、デバイスが同じネットワークに接続されていない場合、メッセージはサーバーに送信されません。インターネット接続に関係なく、誰もが自分のコンピュータサーバーにメッセージを送信できるようにしたい。

この問題を解決するにはどうすればよいですか?

答えて

0

通常、クライアント/サーバーが異なるネットワーク上にある場合のように、何をしようとしているのかを達成するには、通常Web Socketsのようなものを使用する必要があります。たとえば、いくつかの異なるWebソケット実装があります。 https://medium.com/square-corner-blog/web-sockets-now-shipping-in-okhttp-3-5-463a9eec82d1#.w9hrc1icw

EDIT 私が最初に質問を読み違えると、あなたは(ウェブソケットのようなものが必要になる)非同期でサーバからクライアントにメッセージを送信しようとしていたと思いました。クライアントからサーバーへのリクエストを作成する場合は、典型的な解決策は、サーバーからREST APIを公開することです(クライアントからのリクエストを作成する場合はRetrofitなどを使用します)。

+0

私はSirを参照してください。まあ、私はサーバーやウェブサイトを所有していません。自分のアプリケーションからメッセージを受け取るためにお金を払わずに、自分のサーバーをJavaで作成できますか? – orkun

+0

Google App Engine - https://cloud.google.com/appengine/docs/java/ –

+0

のようなものを使用できます。遅くとも「答えを受け入れる」と申し訳ありません。あなたは私を助けました。 – orkun

関連する問題