ローカルネットワーク経由で2つのアンドロイド電話機間でメッセージを転送しようとしています。私はこれを行う良い方法がどこにソケットを読み込みます。 (私はブルートゥースを使用できません) (どちらもNFCは使用できません)クライアントソケットがサーバーソケットに接続していません
私はサーバーとクライアントアプリケーションを構築しました。
1つのアプリケーションには、接続をリッスンするサーバーがあります。
他のアプリには、ボタンを押したときに接続しようとするクライアントがあります。
マニフェストファイルには両方とも正しい権限が含まれています。名前= "android.permission.INTERNETあなた"/
使用許可>アンドロイド:
が使用許可アンドロイド(htmlタグ付き)/
名= "android.permission.ACCESS_NETWORK_STATEの" 私はオンラインサーバーを置きます最初:
ServerSocket myServerSocket = new ServerSocket(27024);
System.out.println("Server is waiting for incoming connection on host=" + InetAddress.getLocalHost().getCanonicalHostName() + ", port=" + myServerSocket.getLocalPort());
Socket socket = myServerSocket.accept();
次に、クライアントと接続してみます。私のコンソールで
String host = "localhost";
int port = 27024;
try{
System.out.println("Client attempting to connect to server at host: " + host + ", port: " + port);
Socket socket = new Socket(host, port);
//This below line never gets called :(
System.out.println("Client socked created! Now trying to send data to server");
}
:
ホストでサーバーに接続しようとするクライアント:ローカルホスト、ポート:27024
"クライアントが作成した酔っぱらいました!"行は決して出力されません。
両方のホストが「localhost」に設定され、ポート番号が同じです。
さまざまなポートを試しましたが、何も起こりません。
クライアントとサーバーの両方がローカルネットワーク上にある場合は、localhost? – snowy500
'localhost'はアプリケーションが動作しているデバイスを指し、アドレスは常にローカルループバックである' 127.0.0.1'です。このアドレスを使用すると、パケットはデバイスから離れることはありません。各デバイスのIPを別のデバイスで使用する必要があります。 –
私は愚かな気分にさせる神、私は今、人の例が私がYouTubeで見ていた理由を理解する - 彼は1台のマシンからクライアントとサーバーを実行していたので。 – snowy500