<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測試程序,服務端已經調試好了,服務端也用模擬器調試好了,可到了黑莓上面就有問題了,程序運行正常,連接也正常建立,但發送出去的數據服務端就是收不到導致阻塞,服務端阻塞也導致了客戶端接收數據的阻塞。。。死活沒發現原因。。。最后測試來測試去才發現問題所在。
    之前的程序:
    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(
    "端口號必須是整數", Thread.currentThread());
                                
    return;
                            }

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

                            
    // 發送和回復的請求
                            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(
    "端口號必須是整數", Thread.currentThread());
                                
    return;
                            }

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

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

    ---------------------------------------------------------
    專注移動開發

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

    評論:
    # re: BlackBerry讓我差點把電腦扔了。。。 2010-01-11 20:14 | javacool
    呵呵,編碼有時候會把人郁悶死,希望UTF-8早日一統江湖!  回復  更多評論
      
    主站蜘蛛池模板: 丝袜足液精子免费视频| 国产午夜成人免费看片无遮挡 | 久久精品国产亚洲香蕉| 亚洲午夜国产精品无卡| 免费无毒a网站在线观看| 少妇人妻偷人精品免费视频 | 99在线精品免费视频九九视| 亚洲va在线va天堂va四虎| 亚洲日韩一区二区三区| 噜噜嘿在线视频免费观看| 亚洲欧美日韩久久精品| 免费无遮挡无码视频网站| 日韩色日韩视频亚洲网站 | 国产性生大片免费观看性| 亚洲线精品一区二区三区影音先锋 | 亚洲黄色激情视频| 午夜毛片不卡高清免费| 色噜噜噜噜亚洲第一| 亚洲国产日韩在线观频| 韩国免费a级作爱片无码| 亚洲第一视频网站| 99国产精品永久免费视频| 亚洲欧美日韩一区二区三区| 亚洲欧洲国产成人综合在线观看 | 无码国产精品一区二区免费模式 | 亚洲第一AAAAA片| 亚洲视频免费在线看| 亚洲码欧美码一区二区三区| 亚洲精品成人片在线观看| 久久精品无码精品免费专区| 国产一区二区三区免费看| caoporn国产精品免费| 精品亚洲成a人片在线观看少妇| 日韩精品成人无码专区免费| 免费人成动漫在线播放r18| 亚洲AV无码一区二区三区系列| 亚洲三级高清免费| 亚洲国产日韩在线一区| 国产精品久久免费视频| 日韩免费在线视频| 亚洲午夜福利在线视频|