2011-10-14 59 views
1

我正在創建一個簡單的即時消息客戶端,客戶端實例可以在端口上連接到服務器,然後發送並接收來自其他連接用戶的消息。使用Java創建即時消息客戶端

由於我得到客戶端的輸入System.in,所以我無法區分客戶端何時嘗試註冊用戶名或發送消息。當我從客戶端收到文本時,如何有效區分服務器端的內容?

我已經考慮要求客戶端指定用戶發送到,這將作爲一個指示,它是一個消息。這與您輸入「/ tell username message」的遊戲內聊天類似。

+0

你能澄清這個問題嗎? – corsiKa

+0

聽起來你想在某種程度上編寫自己的協議。使用現有的協議將會減少很多工作,並且更安全。在嘗試編寫自己的答案之前,考慮查看下面答案中提到的一些答案。 – WilHall

回答

4

您應該考慮對現有協議實施或使用庫,例如​​IRCXMPP

如果你不想那麼做,試着從他們身上獲取靈感。例如,IRC協議全部關於commands。要向用戶寫入私人消息或向某個頻道發送消息,可以向服務器發送PRIVMSG命令,然後服務器解析命令,提取命令名稱,收件人和消息,然後小心發送消息給收件人。

+2

爲了進一步支持Radu的回答:IRC和XMPP作者已經思考,討論並確定了針對您提出的確切問題的最佳解決方案。節省一些時間,不要重新發明輪子。 – jkeeler

相關問題