<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-348  評論-598  文章-0  trackbacks-0
    今天做黑莓平臺上J2ME的Socket測試程序,服務(wù)端已經(jīng)調(diào)試好了,服務(wù)端也用模擬器調(diào)試好了,可到了黑莓上面就有問題了,程序運行正常,連接也正常建立,但發(fā)送出去的數(shù)據(jù)服務(wù)端就是收不到導(dǎo)致阻塞,服務(wù)端阻塞也導(dǎo)致了客戶端接收數(shù)據(jù)的阻塞。。。死活沒發(fā)現(xiàn)原因。。。最后測試來測試去才發(fā)現(xiàn)問題所在。
    之前的程序:
    SocketConnection conn = null;
                        OutputStream os 
    = null;
                        InputStream is 
    = null;
                        
    try {
                            getUrl();
                            
    if ("".equals(url.trim()) || "".equals(port)) {
                                log(
    "請將Socket測試地址和端口填寫完整", Thread.currentThread());
                                
    return;
                            }

                            
    try {
                                Integer.parseInt(port);
                            }
     catch (Exception e) {
                                log(
    "端口號必須是整數(shù)", Thread.currentThread());
                                
    return;
                            }

                            log(CONNECTING_STR, Thread.currentThread());
                            conn 
    = (SocketConnection) Connector.open("socket://" + url + ":" + port, Connector.READ_WRITE, true);
                            conn.setSocketOption(SocketConnection.LINGER, 
    5);

                            
    // 發(fā)送和回復(fù)的請求
                            os = conn.openDataOutputStream();
                            is 
    = conn.openDataInputStream();
    修正之后的程序:
    SocketConnection conn = null;
                        DataOutputStream os 
    = null;
                        DataInputStream is 
    = null;
                        
    try {
                            getUrl();
                            
    if ("".equals(url.trim()) || "".equals(port)) {
                                log(
    "請將Socket測試地址和端口填寫完整", Thread.currentThread());
                                
    return;
                            }

                            
    try {
                                Integer.parseInt(port);
                            }
     catch (Exception e) {
                                log(
    "端口號必須是整數(shù)", Thread.currentThread());
                                
    return;
                            }

                            log(CONNECTING_STR, Thread.currentThread());
                            conn 
    = (SocketConnection) Connector.open("socket://" + url + ":" + port, Connector.READ_WRITE, true);
                            conn.setSocketOption(SocketConnection.LINGER, 
    5);

                            
    // 發(fā)送和回復(fù)的請求
                            os = conn.openDataOutputStream();
                            is 
    = conn.openDataInputStream();
    看出來了嗎?
    os和is變量的聲明類型不一樣,如果用OutputStream和InputStream這一類的抽象類聲明只能調(diào)用標(biāo)準(zhǔn)讀寫接口,在J2ME模擬器上面沒有問題,但是到了黑莓上面死活都不行,后來用了具體實現(xiàn)類來聲明,調(diào)用了ReadUTF和WriteUTF來進(jìn)行讀寫操作,就沒有任何問題了。

    ---------------------------------------------------------
    專注移動開發(fā)

    Android, Windows Mobile, iPhone, J2ME, BlackBerry, Symbian
    posted on 2010-01-10 22:16 TiGERTiAN 閱讀(1933) 評論(1)  編輯  收藏 所屬分類: Java 、J2MEBlackBerry

    評論:
    # re: BlackBerry讓我差點把電腦扔了。。。 2010-01-11 20:14 | javacool
    呵呵,編碼有時候會把人郁悶死,希望UTF-8早日一統(tǒng)江湖!  回復(fù)  更多評論
      
    主站蜘蛛池模板: 三年片免费高清版 | 99亚偷拍自图区亚洲| 久草福利资源网站免费| 亚洲精品国产成人片| 精品国产呦系列在线观看免费| 亚洲精品人成无码中文毛片| 特级毛片aaaa级毛片免费| 国产精品成人无码免费| 亚洲GV天堂无码男同在线观看| 成人免费看片又大又黄| 亚洲AV无码国产一区二区三区| 天天摸天天操免费播放小视频| 亚洲精品精华液一区二区| 免费国产一级特黄久久| 欧亚一级毛片免费看| 精品亚洲视频在线观看| 免费91最新地址永久入口| 老司机亚洲精品影院无码| 国产精彩免费视频| 亚洲爆乳成av人在线视菜奈实| 精品久久免费视频| 亚洲精品国产日韩无码AV永久免费网| 精品亚洲视频在线观看| 99久久综合精品免费| 久久亚洲精品国产亚洲老地址| 国产成人免费永久播放视频平台| 免费人成网站永久| 久久亚洲AV午夜福利精品一区| 国产成人精品免费午夜app| 亚洲欧洲专线一区| 亚洲综合无码AV一区二区| 1000部啪啪未满十八勿入免费 | 亚洲AV无码男人的天堂| 国产专区一va亚洲v天堂| 免费无遮挡无码永久视频| 亚洲三级在线观看| 亚洲人成色777777在线观看| 亚洲性线免费观看视频成熟| 黄色毛片免费在线观看| 亚洲熟妇无码久久精品| 四虎永久在线精品视频免费观看|