まあ、私はShareItのようなソフトウェアを構築しようとしていますが、私は間に打たれているようです。 今まで何をしていたのですか? 私は、サーバがクライアントに何らかのファイルを送ることができるプログラム(サーバとクライアント側)を作っていました。このためにクライアントはサーバのIPアドレスを持っていなければなりません。 しかし、私は知りたいです クライアントがリッスンしているサーバーのIPアドレスを自動的に検索する方法は? 私は手動でIPアドレスを毎回入力するのではなく、クライアントが利用可能なサーバのすべてのIPアドレスを自動的に検出する方法を聞いていますか? ありがとうございます。ShareItはどのようにPCで動作しますか?
0
A
答えて
1
クライアントが作成されたアクセスポイントに接続されると、次のようにアクセスポイントのIPアドレスを取得できます。
public static String getAccessPointIpAddress(Context context) {
WifiManager wifiManager = (WifiManager) context.getSystemService(WIFI_SERVICE);
DhcpInfo dhcpInfo = wifiManager.getDhcpInfo();
byte[] ipAddress = convert2Bytes(dhcpInfo.serverAddress);
try {
String ip = InetAddress.getByAddress(ipAddress).getHostAddress();
return ip.replace("/", "");
} catch (UnknownHostException e) {
e.printStackTrace();
}
return null;
}
private static byte[] convert2Bytes(int hostAddress) {
byte[] addressBytes = {(byte) (0xff & hostAddress),
(byte) (0xff & (hostAddress >> 8)),
(byte) (0xff & (hostAddress >> 16)),
(byte) (0xff & (hostAddress >> 24))};
return addressBytes;
}
アクセスポイントを作成する送信者または受信者は、そのホスト名としてそのIPアドレスでServerSocketを開始します。しかし、クライアントはPORT番号を必要とします。両側をハードコードするかSSIDをエンコードしてポート番号を埋め込むことができます。
はまた、私はそれがSHAREitがどのように動作するかをシミュレートし&転送または他の言葉でファイル共有を支援するためにSHAREthemと呼ばれるライブラリを書き込むための試みを行いました。またthisブログは実装の詳細を説明します 希望に役立ちます。
関連する問題
- 1. BugzillaはローカルPCでどのように動作しますか?
- 2. PC上で動作するIBMのRDZは、メインフレームのファイルシステムにどのようにアクセスしますか?
- 3. Meteorはどのように動作しますか?クライアントとサーバーはどのように動作しますか?
- 4. サーバなしでPCでHTMLローカルストレージを使用すると、どのように動作しますか?
- 5. Makefileでは、VPATHはどのように動作しますか?
- 6. Windows 8.1アプリがWindows 8 PCで動作するかどうか
- 7. ローカルPCに入力した後にSQL Serverがリモートサーバーでどのように動作するのですか?
- 8. 「コール」はどのようにjavascriptで動作しますか?
- 9. NutchはHadoopクラスタでどのように動作しますか?
- 10. JBehaveはJavaでどのように動作しますか?
- 11. jQuery Mobileはjsfiddle.netでどのように動作しますか?
- 12. Meteorアプリケーションはどのようにオフラインで動作しますか?
- 13. メソッドはどのようにPythonで動作しますか?
- 14. cin.peek()はC++でどのように動作しますか?
- 15. タプルでtypedefはどのように動作しますか?
- 16. どのようにループはSchemeで動作しますか?
- 17. NPMはどのようにウィンドウで動作しますか?
- 18. WP7でDataContractJsonSerializerはどのように動作しますか?
- 19. ImmutableJSはAngular 2でどのように動作しますか?
- 20. アセンブラで 'label'はどのように動作しますか?
- 21. pcntl_forkはどのようにPHPで動作しますか?
- 22. インライン化はどのようにLLVMで動作しますか?
- 23. インデックススコープはどのようにMysqlで動作しますか?
- 24. pygameでsuper()._ init_はどのように動作しますか?
- 25. AnacronはどのようにLinuxで動作しますか?
- 26. アップキャスティングはどのようにJavaで動作しますか?
- 27. DllプラグインはどのようにWebpack2で動作しますか?
- 28. MySQLでmemcacheはどのように動作しますか?
- 29. ベクトルマップ()は、アクションスクリプト3でどのように動作しますか?
- 30. AjaxはどのようにJSFで動作しますか?
UDPブロードキャストを使用して、データグラムからIPアドレスを把握することができます – aksappy