• [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理论上也许是可行的。

    我的测试代码在https://files.cnblogs.com/zhengyun_ustc/GetDynamicIP.rar下载,安装的jar包在https://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);

    }

     

     

     

  • 相关阅读:
    闲谈系列之一——数据库主键GUID
    一个简单通用权限管理系统,求各位帮忙看看
    php 计算指定年份的周总数与及第几周的开始日期和结束日期(从周一开始)
    创建虚拟机流程详细过程链接
    阿里云CDN加速设置
    sublime Text3 快捷键
    Linux命令(centos7)
    分布式数据库
    mysql 分区和分表
    Linux crontab 命令格式与详细例子
  • 原文地址:https://www.cnblogs.com/zhengyun_ustc/p/ServerSocketConnection.html
Copyright © 2020-2023  润新知