直到現在我們的通信還是僅僅在使用以<CR><LF>結尾的字符串。當然,在Internet標準協議裏它是最常用的。但有時我們可能需要接收字節流或Java對象。
下面是數據模式和數據類型,使用它你可以告訴ClientHandler使用哪一種通信模式。
數據模式用於定義QuickServer和客戶Socket之間的數據交換格式。下面是目前支持的三種模式:
下面是數據模式和數據類型,使用它你可以告訴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被寫和頭被刷新。