哪种类型的IP地址适合基于wifi的套接字程序

时间:2012-07-04 15:22:00

标签: java android sockets wifi ip-address

我目前正在使用TPC / IP套接字连接在Android上构建应用程序。我通过使用以下代码获得有关wifi连接的IP地址:

这段代码将允许我获取serverIp和Ip

WifiManager manager = (WifiManager) c.getSystemService(c.WIFI_SERVICE);
DhcpInfo info = manager.getDhcpInfo();
WifiInfo wifiInfo = manager.getConnectionInfo();

我正在使用服务器ip:

info.serverAddress

只使用ip地址:

info.ipAddress

(注意:对不起,我不能告诉你我的logcat结果导致他们我的ip地址=(...) 基本上这些代码将获取我的服务器地址和wifi的IP地址。但是我应该使用哪一个来制作TCP / IP连接程序?该计划将仅基于wifi。

2 个答案:

答案 0 :(得分:0)

您应该使用类似

的内容
            Socket s = new Socket("www.server.com", 80);

将客户端应用程序连接到服务器。 其他一切都是其他的组件责任,而不是你的应用程序。 见http://developer.android.com/reference/java/net/Socket.html#Socket(java.lang.String,int)

答案 1 :(得分:0)

  1. 如果您确定应用程序的服务器部分正在您获得的Server Ip上运行,那么创建一个到该端口的套接字,如果您有一个与服务器关联的域名,那就更好了
  2. ,如果它是一个公共服务器,我相信它会有一些与之关联的域名..

    <强>例如

    要在端口4444连接到服务器,连接超时为2秒:

    Socket s = new Socket();
    s.connect(new InetSocketAddress("117.10.10.10.",4444),2000);
    

    从服务器读取:

    InputStream is = s.getInputStream();
        InputStreamReader isr = new InputStreamReader(is);
        BufferedReader br = BufferedReader(isr);
    
        String s = null;
    
        while ((s=br.readLine())!=null)
    
            {
    
                  System.out.println(s);
    
             }
    

    要写入服务器:

    OutputStream os = s.getOutputStream();
    PrintWriter pw = new PrintWriter(os);
    pw.println("hello");