1
某些事實:
- 我的應用程序是客戶端。
- 我有一個Socket
池。
- 多個Thread
s使用此池。
- 每個Thread
都會超時。
- 超時時,即使未從服務器讀取任何答覆,Socket
也會返回到池中。
清空InputStream(套接字)
問題:
在超時,有機會,使用這個Socket
下一個Thread
將不得不讀一些舊的消息(這是由服務器返回的插槽後發送)。
問題:
什麼是最好的方式來「清洗」一Socket
使用前InputStream
?
即使服務器只是慢幾秒鐘(並且連接實際上很好,處理速度慢)? – AndrewBourgeois
@Andrew。問題是,你永遠不知道你的前一個線程已經停止,所以你不知道如何正確快速前進到已知狀態。選擇適當的超時是網絡編程/維護的黑色藝術,這就是爲什麼網絡顧問(知道他們的東西)付出很高的代價並值得每一分錢的原因。 –