日期:2014-05-20  浏览次数:20690 次

j2me异步连接Http网路 阻塞的问题
搜到一片文章http://topic.csdn.net/u/20090416/16/0684f3dd-26d7-4c0b-b938-7e400c75c492.html
里面楼主提到:用Timer定时器并设置如果三十秒后,HTTP还是没返回,则运行TimerTask强制将http.close();http=null;
在手机上执行,代码依旧阻塞在http.getResponseCode();这句,三十秒后,TimerTask执行,却阻塞在http.close();这句
两分四十秒左右,抛出IO异常:-33。改变连接方式为CMNET,网络连接正常。

我的问题是:timetask中程序不会在30后执行,而是要等这两分四十秒后才会执行(当然这并不是我的数据,只是借用亚日这个帖子来说明问题)。我的代码片段
Java code

Timer timer = new Timer();
timer.schedule(new NetTimerTask(), 5000);
try {
    conn = (HttpConnection) Connector.open("http://10.0.0.172:80", Connector.READ_WRITE, true);
    conn.setRequestProperty("X-Online-Host", "wap.sina.com");



因为j2me第一次连接网络需要确认,在我确认连接网络后,new NetTimerTask()中run()方法中的代码并没有在5秒后运行,而是在网络连接完毕(或成功或失败)后才会执行。

有谁遇到过这种情况么??j2me的异步线程彼此还会有牵制?欢迎压日回来挖坟回帖。

抱歉,我也不知道我有多少分,先给20吧。如大家热情讨论,再加。

------解决方案--------------------
写个了DEMO在6120c上测,没有你说的问题。
你在什么手机上测的?