希望我不需要充斥這個帖子我的代碼收到時,但如果需要的話,請你展示字符串代替。 另外,我只用getPassword().toString()
出於測試目的,我也不在我的任何應用程序中使用它。對象通過流
客戶端:從JPasswordField passfield
抓取密碼,將其作爲一個字符串通過ObjectOutputStream out
服務器端: 通過ObjectInputStream in
接收字符串,打印到控制檯
很容易的,但這個問題我我的意思是,而不是字符串顯示,它打印一個對象([C @ 6af3a631) 我發送和接收對象的方式很簡單:
客戶端:
out.writeObject(passfield.getPassword().toString())
服務器:
Object data;
while((data = in.readObject) != null) {
if(data instanceof String) {
System.out.println(data);
}
}
如果我送"hey"
,而不是passfield.getPassword().toString())
,該字符串打印出來就好了。 我已經越來越熟悉不過的ObjectOutputStream,我從來沒有遇到這樣的問題,所以我猜它可能與JPasswordField
這做的是對幫助我瞭解更大的問題的一小步(含包密碼發送正常,包收到就好,但密碼變量爲空)。
'passfield.getPassword()。的toString()'**不要調用任何**'String'情況下可能會流連在JVM中被竊取,所以永遠不要轉換密碼爲'String'。 –
是的,我瞭解到,這僅用於測試目的。我認爲char []可能在當時造成了一些干擾,所以我把它作爲字符串發送來檢查 –
@AndrewThompson,而不是......?如果你說「*不要那麼做」,那麼你也可以說說做什麼。 –