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

本文探讨了JavaME环境下手机获取动态IP并实现SocketServer的功能。通过代码实现了客户端与服务器之间的简单通信,但在实际手机设备上的测试效果不佳。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<iframe align="center" marginwidth="0" marginheight="0" src="http://www.zealware.com/csdnblog336280.html" frameborder="0" width="336" scrolling="no" height="280"></iframe>

获取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://www.cnblogs.com/Files/zhengyun_ustc/GetDynamicIP.withServerSocketClient.rar获得。

发布包可以从

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

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

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

RegisterDynamicIP

<shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"></shapetype><stroke joinstyle="miter"></stroke><formulas></formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f><lock v:ext="edit" aspectratio="t"></lock><shape id="_x0000_i1026" style="WIDTH: 194.25pt; HEIGHT: 326.25pt" type="#_x0000_t75"></shape><imagedata src="file:///C:%5CDOCUME~1%5CVICTOR~1%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image001.png" o:title=""></imagedata>

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

RegisteredIP

<shape id="_x0000_i1027" style="WIDTH: 193.5pt; HEIGHT: 336pt" type="#_x0000_t75"></shape><imagedata src="file:///C:%5CDOCUME~1%5CVICTOR~1%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image003.png" o:title=""></imagedata>

然后,选择“联系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。如下图所示:

<shape id="_x0000_i1025" style="WIDTH: 195.75pt; HEIGHT: 340.5pt" type="#_x0000_t75"></shape><imagedata src="file:///C:%5CDOCUME~1%5CVICTOR~1%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image005.png" o:title=""></imagedata>

ServerSocketClient

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

本文还可以从

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

郑昀@ultrapower

类别

编写日期

Keyword: Mobile dynamicIP j2me midp ServerSocketConnection

讨论稿

20051116日星期三

ServerSocketClient




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值