2012-09-24 41 views
1

我目前正在編寫一個服務,應該採取cleartext命令,然後根據thoose命令,這也是明文返回的東西。是BufferedReader忽略第一行嗎?

我有這個奇怪的問題BufferedReader,或者,它可能是telnet奇怪,由於某種原因BufferedReader讀取第一個命令,但是該命令被忽略無論我做什麼,我可以通過發送第一個命令兩次,但這只是擴展一點,在我的看法。

以下代碼位於run()方法中。 然後我設置out作爲PrintWriterin作爲BufferedReaderruns變量默認爲true

out = new PrintWriter(handle.getOutputStream(), true); 
in = new BufferedReader(new InputStreamReader(handle.getInputStream())); 
while (runs) { 
    String msg; 
    msg = in.readLine(); 
    String[] command; 
    command = msg.split(" ", 3); 
    /* do something with the command */ 
} 

所以我的問題是,如果BufferedReader是忽略第一行還是不與我coorperating的telnet?

如果是別的東西,那請賜教。

編輯 我得到這個調試消息:

調試:「/尼克halmark

所以我想,這是所有問題標記。

+0

你一定要深入研究並找出造成問題的原因,而不是僅僅解決它。有一個原因是它發生在某個地方。 –

+0

我一直在Netbeans和web上尋找問題的解決方案,但我沒有找到答案。 –

+0

至少你應該打印/註銷味精的連續值,看看是否給你一些線索。 – SJuan76

回答

2

我實際上採用了最新的膩子,因爲我在Windows中發展......而據我記得......那麼它默認不

如果您正在使用存在PuTTY,您需要選擇「原始」連接類型。

Microsoft telnet服務器喜歡在開始時進行一些內容/協議協商,所以PuTTY默認會這樣做,如per the RFC 854 spec。這是你正在閱讀的垃圾。

+0

我應該知道,爲什麼Linux不使用這些字符,或者更確切地說telnet客戶端? –

+0

@RalphAndreasen我不知道爲什麼,除了它可能與內容協商有關外,甚至不能提供未受過教育的猜測,一個人試圖默認做,另一個則沒有。 –

+0

啊我看到...無論如何謝謝你的答案。 –