天天看點

Java---基于TCP協定的互相即時通訊小程式設計思想如下:伺服器端源代碼:用戶端源代碼:

這是幾年前,新浪的一個面試題~要求是3天之内實作~

通過TCP 協定,建立一個伺服器端。

通過配置伺服器端的IP和端口:

用戶端之間就可以互相通訊~

上線了全部線上使用者會收到你上線的通知。

下線了全部的線上使用者會收到你下線的通知!

可以私聊,可以群聊。

這是第一個版本~以後有空可以再增加功能~比如傳檔案啊~等等~

在伺服器端 用一個HashMap< userName,socket> 維護所有使用者相關的資訊,進而能夠保證和所有的使用者進行通訊。

用戶端的動作:

(1)連接配接(登入):發送userName 伺服器的對應動作:1)界面顯示,2)通知其他使用者關于你登入的資訊, 3)把其他線上使用者的userName通知目前使用者 4)開啟一個線程專門為目前線程服務

(2)退出(登出):

(3)發送消息

※※發送通訊内容之後,對方如何知道是幹什麼,通過消息協定來實作:

用戶端向伺服器發的消息格式設計:

指令關鍵字@#接收方@#消息内容@#發送方

1)連接配接:userName —-握手的線程serverSocket專門接收該消息,其它的由伺服器新開的與客戶進行通訊的socket來接收

2)退出:exit@#全部@#null@#userName

3)發送: on @# JList.getSelectedValue() @# tfdMsg.getText() @# tfdUserName.getText()

伺服器向用戶端發的消息格式設計:

指令關鍵字@#發送方@#消息内容

登入:

1) msg @#server @# 使用者[userName]登入了 (給用戶端顯示用的)

2) cmdAdd@#server @# userName (給用戶端維護線上使用者清單用的)

退出:

1) msg @#server @# 使用者[userName]退出了 (給用戶端顯示用的)

2) cmdRed@#server @# userName (給用戶端維護線上使用者清單用的)

發送:

msg @#消息發送者( msgs[3] ) @# 消息内容 (msgs[2])

Java---基于TCP協定的互相即時通訊小程式設計思想如下:伺服器端源代碼:用戶端源代碼:

繼續閱讀