我用Java編寫基於套接字服務器。客戶端連接到它(網絡瀏覽器),服務器發回一個簡單的html代碼,並設置cookie以在客戶端再次連接到它時識別。我正在使用PrintStream寫入套接字,但刷新不起作用。我可以刷新的唯一方法是使用shutdownoutput或close並關閉套接字流。但我不希望這樣,因爲我在代碼中的幾個地方多次讀入/寫入。有什麼可以做的?無法從標籤中獲得任何幫助。 我也試過其他緩衝作家類,同樣的問題。Java Socket技術的OutputStream不沖水
3
A
回答
0
我會嘗試調用此方法,而不是平的:
public boolean checkError()
Returns:
True if and only if this stream has encountered an IOException other than InterruptedIOException, or the setError method has been invoked
看看是不是沒有出於某種原因做沖洗(checkError調用內部沖洗並記住錯誤狀態)。
也值得嘗試使用telnet和看如果數據被立即返回,或者寫一個簡單的java客戶端套接字程序檢查(剪切/粘貼一個斷網)連接到服務器。
這可能是瀏覽器的決定顯示你的HTML(特別是如果沒有完全形成HTML)之前,故意等待更多的輸入。我似乎記得過去自己也有過這個問題。
4
啊是啊,sillyproblem,你只需要使用pstream.writeln( 「」);因爲breader.readLine()讀取直到找到'\ n'字符。 所以write()將不起作用。
相關問題
- 1. 的Android,Java Socket技術
- 2. Java Socket技術除外
- 3. Java Socket技術編程
- 4. Java Socket技術作家
- 5. Java技術衝突
- 6. Java WebSocket服務器OutputStream不沖水
- 7. 的Telnet Java Socket技術測試
- 8. Java Socket技術和ServerSocket問題
- 9. Java Socket技術 - 如何捕捉BufferedReader.readline()
- 10. Java Socket技術得到例外
- 11. Java Socket技術方案和符號不能找到DataInputStream類類
- 12. Java WebService技術
- 13. Java Socket技術和ServerSocket的使用端口
- 14. 讀取的圖像文件通過Java Socket技術
- 15. Java Socket技術創建多個播放器
- 16. Java Socket技術方法塊當「連接」被稱爲
- 17. Java Socket技術異常:java.net.SocketTimeoutException:接受超時
- 18. Java Socket技術選擇犯規開關寫狀態
- 19. java中的最新技術
- 20. 新的Java技術JAXX
- 21. Java上的EL技術
- 22. 玉的緩衝技術(驚歎號)
- 23. 使用UI技術的網絡技術
- 24. 複製手術技巧和水
- 25. 畫筆衝壓算法/技術
- 26. Google AppEngine Java Web技術
- 27. AngularJs和Java Servlet技術
- 28. 客戶端Java Web技術
- 29. Java技術學習路徑
- 30. Java Socket技術錯誤時連接到Telnet服務器的SMTP驗證
你能發佈一個你的服務器代碼的例子嗎? – Kylar 2010-02-14 04:33:54
這真的很古老,但對於後代來說,'ps.flush()'是不必要的,因爲當打印''\ n「'時發生刷新 - 即調用'println()'。此外,在'SocketOutputStream'中,'flush()'方法無論如何都是無操作的。 – Gray 2011-11-25 14:04:43