[JavaME]手机是否能够申请到动态IP?

[JavaME]手机是否能够申请到动态IP?

 

ServerSocketConnection

http://www.j2medev.com/bbs/dispbbs.asp?boardid=21&id=4099&star=1#2083 ,这里是原始讨论贴。

 

 

这里我们给出一个思路:可以先这样,手机先访问一个固定的网址,然后就会被分配一个IP,这就是手机用来和外界联系的IP了。

 

Efei说,刚才测试了下,使用一段文档上提供的代码,也就那两三句话

 

try{
      ServerSocketConnection scs = (ServerSocketConnection) Connector.open("socket://:1234");
      frmMain.append("ip:" + scs.getLocalAddress());
    }
    catch (Exception e) {}

 

取得了一个IP10.66.7.28

 

这个IP外部网络是无法访问的,换言之,内部网络可以访问。

 

所以只要在移动的机房有服务器,你可以访问了

 

但是还有个问题,这个IP是动态变化的,所以至少需要客户端先访问服务器一下,让服务器知道你现在的IP

 

确实如efei所说,我在手机上测试结果也是拿到了socket://10.15.134.128:4234,看来是没办法访问的了。但是我觉得虽然我们的位于Internet的服务器无法访问,但是也许另一部手机是可以访问这个地址的,所以手机的p2p理论上也许是可行的。

 

我的测试代码在http://files.cnblogs.com/zhengyun_ustc/GetDynamicIP.rar下载,安装的jar包在http://files.cnblogs.com/zhengyun_ustc/GetDynamicIP-deployed.rar下载,

 

Nokia7610测试通过。

 

朋友们也可以自己在真机上试验下这个程序。

 

用下面的代码可以得到一个socket 动态IP

 

 

 

//Use an unrestricted filter.

 

String filter = "*";

 

String url = "socket://:" + m_sSocketPort;

 

ServerSocketConnection ssc = null;

 

 

try

 

{

 

     //Open the connection.

 

     ssc =

 

        (ServerSocketConnection) Connector.open(url);

 

     System.out.println("/* Already Open the connection!");

 

       

 

      //Discover the system-assigned port.

 

     url = "socket://:" + ssc.getLocalPort();

 

      //Register the connection now. The AMS will

 

      //remember the registered URL even when the MIDlet

 

      //is not active.

 

     PushRegistry.registerConnection(url,

 

             m_sMidletClassName, filter);

 

     System.out.println("/* Already Register the connection now!" +

 

             url);

 

      //Now publish the push URL. We can use an HTTP

 

      //POST or a socket or datagram for this.

 

     String purl;

 

     purl = "socket://" + ssc.getLocalAddress() +

 

        ":" + ssc.getLocalPort();

 

     publishInboundConnection(purl, m_sMidletClassName);

 

}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=525660


你可能感兴趣的:(JavaME)