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

news/2024/7/2 1:22:09

[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://www.cnblogs.com/Files/zhengyun_ustc/GetDynamicIP.rar下载,安装的jar包在http://www.cnblogs.com/Files/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);

 

}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 





http://www.niftyadmin.cn/n/3649679.html

相关文章

给数学的孩子们推荐的十部经典电影~

0) 中文名称:死亡密码 英文名称:π 别 名:3.14159265358(USA) 发行时间:1998年07月10日 科幻惊栗手法描写一名天才数学家触目惊心的经历。才华盖世的数学家马斯在过去十年来,发现股票市场在混乱波动背后…

移动端开发——ionic集成toast消息提示插件

新建toast.service文件进行方法封装 1、新建文件命令 ionic g service service/toast2、toast.service完整代码 import { Injectable } from angular/core; import {ToastController} from "ionic/angular";Injectable({providedIn: root }) export class ToastSe…

如何创建Laravel雄辩的API资源以将模型转换为JSON

介绍 (Introduction) When creating APIs, we often need to work with database results to filter, interpret or format values that will be returned in the API response. API resource classes allow you to convert your models and model collections into JSON, work…

[JavaME]手机玩点对点MSN传情动漫之补充说明

代码将陆续上传。1:发送特定端口短信的MIDlet源代码可以从http://www.cnblogs.com/Files/zhengyun_ustc/MIMESMSSender.rar下载。其实实现的技术很简单,只要下载了 这两个例子程序,跑一遍,想想就能做出来了,呵呵。希望…

C/C++ 常见误区

1. C虽然主要是以C的基础发展起来的一门新语言,但她不是C的替代品,不是C的升级,C和C是兄弟关系。没有谁比谁先进的说法,更重要 的一点是C和C各自的标准委员会是独立的,最新的C标准是C98,最新的C标准是C99.因…

[JavaME]手机也能玩转点对点的MSN传情动漫

郑昀ultrapower产品名称产品版本Keyword: Mobile 传情动漫 Wink MSN Messenger Media 媒体播放 j2me midp2.0WMA PushRegistryPopupWinksMobile0.0.1 BETA手机也能玩转MSN传情动漫! J2ME实作摘要:本文档并不是一个关于PopupWinks On Mobile 之Kjava版本…

移动端开发:ionic如何与服务端进行数据交互

一、查看数据库表内容(以新闻表为例) 二、使用postman检查服务端接口是否可以正常获取数据 1、getNewsList方法用于新闻表多个数据查询 2、getSingleNewsById方法用于新闻表单个个数据查询 三、编写移动端代码 1、建立模型类News 新建model包用于存放…

水滴石穿C语言之指针综合谈

概述Joel Spolsky认为,对指针的理解是一种aptitude,不是通过训练就可以达到的。虽然如此,我还是想谈一谈这个C/C语言中最强劲也是最容易出错的要素。鉴于指针和目前计算机内存结构的关联,很多C语言比较本质的特点都孕育在其中&…