JWorld@TW the best professional Java site in Taiwan
      註冊 | 登入 | 全文檢索 | 排行榜  

» JWorld@TW » Java ME、Google Android 平台與 JavaCard 討論區  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友    訂閱主題
reply to topicthreaded modego to previous topicgo to next topic
本主題所含的標籤
無標籤
作者 請教pjava的socket
yeungkit





發文: 14
積分: 0
於 2004-07-10 22:36 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
我用PERSONAL JAVA寫了一個在POCKET PC上用socket可與pc連接的聊天室程式,當中使用了綫程.但問題是如果ppc按power關機,在pc上可看見ppc已斷線,但當ppc再開機的時候,聊天的程式仍然繼續,但它不知道已經斷線需要再連線.本來在J2SE1.4上可使用isConnected()的方法,但是pjava並不支援.有什麼方法可解決這問題?

reply to postreply to post
作者 Re:請教pjava的socket [Re:yeungkit]
yeungkit





發文: 14
積分: 0
於 2004-07-10 22:53 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
剛才再試了一下.我想即使isConnected()可用也不能解決這個問題.

reply to postreply to post
作者 Re:請教pjava的socket [Re:yeungkit]
moliwang

用嘴巴打嘴炮比用鍵盤打嘴炮要來的務實

版主

發文: 1215
積分: 6
於 2004-07-10 23:28 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
yeungkit wrote:
我用PERSONAL JAVA寫了一個在POCKET PC上用socket可與pc連接的聊天室程式,當中使用了綫程.但問題是如果ppc按power關機,在pc上可看見ppc已斷線,但當ppc再開機的時候,聊天的程式仍然繼續,但它不知道已經斷線需要再連線.本來在J2SE1.4上可使用isConnected()的方法,但是pjava並不支援.有什麼方法可解決這問題?


不能執行的話,不會丟出exception嗎?
如果會,攔住exception,重新connect.


reply to postreply to post
作者 Re:請教pjava的socket [Re:yeungkit]
yeungkit





發文: 14
積分: 0
於 2004-07-10 23:44 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
我的部份語句:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
  public void run() {
    String m;
    while(true){
      try {
        m = read.readUTF();
        if (m != null) {
          Message.append("\n" + m);
        }
      }
      catch (IOException ex) {
        Message.append("\n\nerror\ndisConnected");
        sendMessage.setEnabled(false);
        break;
      }
    }
  }

Message是一個textArea
sendMessage是一個button
可是好像沒有丟出exception,因為error disConnected語句沒有出現.我做過另一個試驗,知道了Thread在PPC再開機的時候是會繼續運作的,但exception沒有丟出,那是不是在readUTF()那處停了?


yeungkit edited on 2004-07-10 23:49
reply to postreply to post
作者 Re:請教pjava的socket [Re:yeungkit]
moliwang

用嘴巴打嘴炮比用鍵盤打嘴炮要來的務實

版主

發文: 1215
積分: 6
於 2004-07-11 00:25 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
我也是今天才知道PocketPC上會有這種情況發生,
自己玩的時候,都是乖乖地把程式關掉 >"<

我想到的解法有兩種:
1. PocketPC關閉/開啟電源的時候,不知道視窗會不會收到
哪些event,如果有,那就針對這些事件來reconnect.
2.另外做個Timout的機制readUTF()之前,設好Timer,
如果readUTF()有return,就把Timer reset,
如果一直沒有return,那麼Timer就會把這個thread
關掉.

不知道這樣是否可行?
不過如果這樣一來,一但網路正常的時候,就會花掉很多資源
在timer上了.

yeungkit wrote:
我的部份語句:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
  public void run() {
    String m;
    while(true){
      try {
        m = read.readUTF();
        if (m != null) {
          Message.append("\n" + m);
        }
      }
      catch (IOException ex) {
        Message.append("\n\nerror\ndisConnected");
        sendMessage.setEnabled(false);
        break;
      }
    }
  }

Message是一個textArea
sendMessage是一個button
可是好像沒有丟出exception,因為error disConnected語句沒有出現.我做過另一個試驗,知道了Thread在PPC再開機的時候是會繼續運作的,但exception沒有丟出,那是不是在readUTF()那處停了?


reply to postreply to post
作者 Re:請教pjava的socket [Re:yeungkit]
yeungkit





發文: 14
積分: 0
於 2004-07-11 01:54 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
第一個方法最方便,但是我找不到有關的資訊/_\
第二個方法除了TIMER資源問題外,以一個用PDA和PC溝通的程式來說,有一段時間沒資料轉送是一定會出現的,為此又要再RECONNECT,又是一筆資源浪費.

我又有了一個新發現,就是當PDA再打開後,PDA要發送訊息時,那句error disConnected便會出現,即是那段while迴圈又正常了.雖然搞不清原因,但這也是我暫時一個折衷做法.


reply to postreply to post
作者 Re:請教pjava的socket [Re:yeungkit]
moliwang

用嘴巴打嘴炮比用鍵盤打嘴炮要來的務實

版主

發文: 1215
積分: 6
於 2004-07-11 15:39 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
yeungkit wrote:
第一個方法最方便,但是我找不到有關的資訊/_\


我有個很笨的辦法,就是先寫個程式,
然後每個event的handler都去攔截,
看看哪個event會被叫到!


reply to postreply to post
» JWorld@TW »  Java ME、Google Android 平台與 JavaCard 討論區

reply to topicthreaded modego to previous topicgo to next topic
  已讀文章
  新的文章
  被刪除的文章
Jump to the top of page

JWorld@TW 本站商標資訊

Powered by Powerful JuteForum® Version Jute 1.5.8