带有IP地址的TCP服务器

时间:2012-09-25 19:21:29

标签: android tcp

我使用以下代码获取我的Android手机的IP地址。

try {
         for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) {
             NetworkInterface intf = en.nextElement();
             for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();) {
                 InetAddress inetAddress = enumIpAddr.nextElement();
                 if (!inetAddress.isLoopbackAddress()) {
                     return inetAddress.getHostAddress().toString();
                     //return inetAddress;
                 }
             }
         }
     } catch (SocketException ex) {
         Log.e("SALMAN", ex.toString());
     }

它返回fe80 :: 94ae:97c:2680:c6cb%rmnet0

然后我在端口8080上设置了一个服务器。

如何使用此地址将客户端连接到它?我期待一个IPv4地址......我可以通过chrome或其他东西连接到它来测试连接吗?

1 个答案:

答案 0 :(得分:2)

使用:

WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
int ipAddress = wifiInfo.getIpAddress();

或者:

try {
Socket socket = new Socket("www.stackoverflow.com", 80);
   Log.i("", socket.getLocalAddress().toString());
} catch (Exception e) {
   Log.i("", e.getMessage());
}

您无法通过Chrome测试您的连接,但如果您使用HTTP协议,则可以通过它连接。使用另一个套接字编写Java SE桌面进行通信。代码非常相似。