0
有沒有辦法在套接字連接保持打開時從TCP套接字讀取時檢測EOF?Java服務器 - TCP套接字檢測EOF,但沒有關閉套接字連接
大部分我所看到的例子是沿着線的東西:
int n=0;
While((n = read.inStream(data)) != -1){
destType.write(data, 0, n);
}
然而,這意味着你被迫要接受一個新的數據塊,每次創建一個新的連接。 在我的情況下,這是一個恆定的圖像流,通過套接字作爲字節發送,我想處理每個圖像,而不必關閉連接,以便我可以將所有圖像與單個用戶相關聯,以及不以高頻率持續打開和關閉連接只是更有效率。
那麼有沒有辦法做到這一點或一些可能的選擇信息?
或使用開始消息/結束消息指示符。 –
@ShaneWealti:雖然這是可能的,但它變得更加密集客戶端 - 在讀取數據時必須解析數據,並制定一個轉義策略,以確定數據是否自然包含「結束消息」指示符。 –
我更喜歡這兩種方式 - 一種以SOH開頭的包含ASCII碼的數據長度,可以進行結構和健全性檢查的包含校驗和的終止符。如果報頭檢查失敗或終止器不良,則會丟棄所有數據,直到收到另一個可啓動另一個報頭檢查的SOH爲止。 –