QuickServer開發指南(9)- 數據模式和數據類型

    直到現在我們的通信還是僅僅在使用以<CR><LF>結尾的字符串。當然,在Internet標準協議裏它是最常用的。但有時我們可能需要接收字節流或Java對象。
    下面是數據模式和數據類型,使用它你可以告訴ClientHandler使用哪一種通信模式。
    數據模式用於定義QuickServer和客戶Socket之間的數據交換格式。下面是目前支持的三種模式:
  • DataMode.STRING - 這是默認的交換模式,在這種模式下你可以接收字符串數據(以<CR><LF>結尾)
  •  DataMode.OBJECT - 在這種模式裏你可以接收可序列化的Java對象。這種模式僅僅使用在客戶端可以寫java的情況下。
  •  DataMode.BYTE - 在這種模式下你可以接收客戶端發送的所有字節,包括<CR>或<LF>或任何其它控制字符。這種模式在處理基於客戶機或無標準協議如xml或你自己定義的協議的硬件時非常有用。
    數據類型用戶定義QuickServer和客戶Socket之間的數據交換類型。目前有兩種格式:
  • DataType.IN - 指定數據爲輸入QuickServer的數據。
  • DataType.OUT - 指定數據爲從QuickServer輸出的數據。

    任何數據類型的數據模式都可以使用ClientHandler的setDataMode()方法設置,格式如下
    setDataMode(DataMode dataMode, DataType dataType)
注意:
    當模式爲DataMode.OBJECT類型爲DataType.IN,調用將會阻塞,直到客戶端的ObjectOutputStream被寫和頭被刷新。

發佈了27 篇原創文章 · 獲贊 10 · 訪問量 33萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章