作者:
pttworld (批踢踢世界)
2015-05-20 15:52:19※ 引述《a2975313 (GN)》之銘言:
: ※ 引述《a2975313 (GN)》之銘言:
: : 首先描述一下環境...
: : 1個console(模擬server), 1個jframe(模擬client), 以上兩個階在同一個project中...
: : 問題來的, project run起來後serverSocket.accept()有偵測到client連線,
: : 但後續從client端printWriter.write()資料後, serverSocket.accept()都無法捕捉到,
: : 也沒出現error or exception...
: : 想問有沒有人實作過本機端server&client socket的情況~
: : 程式碼有點長, 有需要的話站內信...
: https://gist.github.com/dukeChang/9e7fc2f747592a9474ba
嗯。關鍵在於Server.java的
Thread thread = new Thread(new ClientHandler(clientSocket,
clientOutputStream));
你把clientSocket送給誰的問題。
在這裡顯然是ClientHandler,所以
在4.1下面使用while(true)把sendToEveryOne包起來就可以了。
因為ClientHandler的run()如果沒有loop就只跑一次。
只是加了loop這樣會變成每次都會送給所有人,
應該在設計上要分成sendToOne和sendToEveryone。
設計問題就請自行努力的。