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