客戶通過(guò)Socket(InetAddress,port)建立與服務(wù)器的連接。服務(wù)器與客戶都通過(guò)構(gòu)造BufferedReader,PrintWriter來(lái)建立輸入輸出流,然后雙方通過(guò)該輸入輸出流來(lái)相互傳遞信息,一旦收到客戶方的連接請(qǐng)求,服務(wù)器accept()方法返回一個(gè)新建的Socket對(duì)象。客戶端然后向服務(wù)器發(fā)送消息,比如注冊(cè),登錄,查找好友等,服務(wù)器收到來(lái)自客戶的請(qǐng)求后,針對(duì)不同的消息處理請(qǐng)求, 雖然UDP不可靠但是對(duì)于icq可靠性并不太重要,而且UDP快速,所以客戶間發(fā)送信息通過(guò)UDP。用戶登錄時(shí)通過(guò)類(lèi)DatagramPacket和DatagramSocket創(chuàng)建UDP包括其本地接受端口以及發(fā)送端口,默認(rèn)端口為5000和5001,通過(guò)取得的好友的IP地址來(lái)向好友發(fā)送消息(send(DatagramPacket)和接受消息(receive(DatagramPacket))。當(dāng)用戶通過(guò)UDP收到消息后,可以通過(guò)DatagramPacket的方法InetAddress getAddress()得到對(duì)方的ip地址,通過(guò)對(duì)好友列表比較以判斷是誰(shuí)并提示用戶收到某某的消息,然后用戶選擇該用戶查看消息,如果好友列表沒(méi)有該人就顯示收到陌生人的消息。用戶可以按陌生人按鈕查看消息。
標(biāo)簽:
BufferedReader
InetAddress
PrintWriter
Socket
上傳時(shí)間:
2016-10-26
上傳用戶:familiarsmile