Banner
首頁 > 學員動態 > 內容
湖南安卓培訓硅谷成長日記:聊天窗口設計問題及優化
- 2019-02-21-

這篇主要是對于聊天窗口的設計容易出現的問題以及如何優化功能做一個總結。湖南安卓培訓哪家好?選湖南硅谷??!

1、連接要用到多線程:將自己的類實現Runable接口,將接受程序寫在run()方法里面。

2、所有在文本框里面顯示的都是字符串型,所以要注意數據類型的轉換。

3、地址和端口號是客戶端提供的,服務端只需要連接端口號就行,在socket定義時要用到端口號。

4、發送時要先從文本框取得值然后發送,而接受的話先要接受數據包,再賦值給文本框。

5、服務端接收數據包里面含有地址和端口號,可以通過pa.setAddress(packet.getAddress())獲得。端口號也是如此。

6、執行程序是要先從客戶端發消息,服務端接收到后才能發消息,因為在我做的程序里面服務端要先得到客戶端傳送過來的地址和端口號(如何得到見第五條),才能進行發送。

7、在寫服務端發送消息給客戶端的程序時,一定不要再重新定義socket,因為我一開始就直接是將socket定義為屬性的,如果我再重新定義那么我接收到的便是一個空的地址,那么像這種情況你的客戶端就會既接收不到信息而且程序還不報錯!因為定義為屬性的packet處于直接接收狀態,所以packet可以在每次發送時再次定義。

8、在本機中自己定義一個客戶端和服務端互傳消息時,服務端要設置一個setSoTimeout(10000)超市等待。表示如果對方連接狀態10秒沒有收到數據的話強制斷開客戶端。

9、除了可以在自己本機發送消息外。還可以通過改變IP地址與在同一局域網內的電腦進行連接。別人連我的話只需要將IP地址改為我的IP地址,同時告訴我他的端口號就可以了。在這里可以做個小優化,顯示你每次連接不同服務端是的IP地址。

代碼如下:

String s = iAddr.toString();//iAddr表示我設置當前連接的IP地址

int pos = s.indexOf('/');//查找截取/后的IP地址

s = s.substring(pos+1);

txtIP.setText(s);

10、優化聊天窗口,在聊天時想要顯示當前消息,關鍵代碼如下:

Date date = new Date();

SimpleDateFormat sf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss  E");

String time = sf.format(date);

在寫日期的時候要記得區分大小寫,在Java中大小寫是要嚴格區分的!

附成功執行后的截圖:


                                                                                                                                           硅谷學員——丁薇

硅谷教育

地 址:湖南省長沙市岳麓區高新開發區延農創業基地5樓

聯系方式:0731-83755989

公司官網:http://www.369interactive.com/

關注我們

版權所有:硅谷教育手機版營業執照信息公示

亚洲国产在线精品国