NetworkStream.DataAvailable知道發件人的發送緩衝區是否爲空?還是隻是表明接收者的讀緩衝區是否有數據?我的假設是後者...NetworkStream.DataAvailable是否查看緩衝的數據?
具體而言,對於涉及正在進行的對話的某些套接字工作,我當前使用長度前綴,因此接收方知道當前批處理中有多少數據;不過,我已經發送了一個.patch,建議我改用NetworkStream.DataAvailable。我擔心的是,這隻會告訴我接收者的內容 - 而不是發送者最初發送的內容 - 但我不是套接字專家。
我錯了嗎?或者是長度前綴的路要走? (注意我不能直接讀取()直到流被關閉,因爲多個批處理在同一個連接上發送,而且將每個批處理視爲單獨處理是至關重要的;如果我在一個批處理中讀取太多(即使它被緩衝並丟棄),那麼對話將會中斷)。
這就是我的想法;我會禮貌地拒絕.patch,然後堅持使用長度前綴。乾杯。 – 2008-10-03 19:03:03