我有一個Java服務器,它將具有兩種不同類型的客戶端,一個基於Java的控制檯和一個基於Lua的客戶端,服務器將控制該客戶端。我已經得到了Lua的客戶攀談來回通過TCP套接字與ObjectInputStream,Java和Lua客戶端進行網絡連接
out = new PrintWriter(socket.getOutputStream(), true);
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
現在我想獲得一個基於Java的客戶端連接,我想用
out = new ObjectOutputStream(new BufferedOutputStream(socket.getOutputStream()));
in = new ObjectInputStream(new BufferedInputStream(socket.getInputStream()));
我遇到的問題理解接受連接的最佳方式,不知道它是否是另一端的Lua或Java客戶端。然後設置合適的流。
我應該只在初始連接上使用不同的端口嗎?我希望更多的是從BufferedReader可以讀取的ObjectOutputStream發送一個字符串。或者,如果它是PrintWriter或ObjectOutputStream,則應在設置之前使用較低級別的內容查看連接的內容。
指向深入教程或實際代碼的鏈接將起作用。我無法找到超出其中一個或另一個的基本設置的資源。
謝謝先進。
如果您不是專門使用Java客戶端,則不應該使用ObjectOutputStream。使用XML或JSON等標準傳輸格式,或設計精確的二進制記錄格式。 – RealSkeptic
你會在XML或JSON之間推薦什麼?我對這兩個人的經歷都差不多,這很少。 – Ditchbuster
JSON更簡單,我會說,並且是專門爲表示對象而設計的。如果你沒有選擇XML的特定理由,那麼我更喜歡JSON。但是,可能你甚至不需要這個。這取決於你需要交換的消息的性質。 –