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