[JavaME]手机申请移动分配的动态IP[3]

获取IP后是否可以和它通讯呢?

 

       Hi,继续上回的讨论《[JavaME]手机是否能够申请到动态IP[2]?》。

       上回说到申请动态IP是可以了,并且准备好了一个线程等候在socket://10.16.195.219:8110之类的端口上监听。

这次把代码修改了,完成了监听线程之后,就相当于起了一个Socket Server,一旦有人要连接它,就回复一个字符串说“God bless you!You are the No.”后面加上是第几位访问者的序号。

菜单中也相应加入了一个命令“联系ServerSocket”,就是向界面中的"ServerSocket:"编辑框所指明的Server发起Socket连接请求,看能否得到回复;如果有回复,就输出到屏幕上。

源代码可以从

http://files.cnblogs.com/zhengyun_ustc/GetDynamicIP.withServerSocketClient.rar获得。

发布包可以从

http://files.cnblogs.com/zhengyun_ustc/GetDynamicIP.withServerSocketClient-deployed.rar获得。

 

 

 

实际在手机上测试结果并不理想,

首先,我们点击“注册动态IP”命令,

RegisterDynamicIP 

得到了一个ServerSocket端口号,将被更新到"ServerSocket:"编辑框。

RegisteredIP 

然后,选择“联系ServerSocket”命令,后台线程将用

用下面的代码可以得到ServerSocket 服务的应答

 

 

 

 

socketConn = (SocketConnection) Connector.open(hostToPostTo);

 

 

 

           

 

 

 

// socketConn取得一个 DataInputStream

 

 

 

dis = new DataInputStream( socketConn.openInputStream() );

 

 

 

// 从服务器上取回响应

 

 

 

int ch;

 

 

 

while ( ( ch = dis.read() ) != -1 )

 

 

 

{

 

 

 

    responseMessage.append( (char) ch );

 

 

 

};//结束while

 

 

 

 

 

 

////////////////////////////////////////////

 

 

 

// 告诉控制器url

 

 

 

Object[] argvs = {responseMessage.toString()};

 

 

 

m_controller.handleEvent(GUIController.EventID.EVENT_SOCKETSERVER_DISPLAYIP,

 

 

 

        argvs);

 

 

 

////////////////////////////////////////////

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

但是,始终没有应答返回。

当然,在PC机上模拟器测试结果自然能够显示ServerSocket服务器应答,因为那上面的IP是本机内网IP。如下图所示:

 

 ServerSocketClient 

 

本文属于讨论稿,提供的仅仅是测试意见。

本文还可以从

http://www.cnblogs.com/zhengyun_ustc/archive/2005/11/16/ServerSocketConnection3.html 得到最新稿。

 

 

 

郑昀@ultrapower

 

 

 

 

类别

 

 

 

 

编写日期

 

 

 

 

Keyword: Mobile dynamicIP j2me midp ServerSocketConnection

 

 

 

 

讨论稿

 

 

 

 

20051116日星期三

 

 

 

 

 

 

 

 

 

 ServerSocketClient 

 



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


你可能感兴趣的:(JavaME)