天天看點

android基于socket聊天的思路與常見問題

思路:

server端:

使用ServerSocket

ServerSocket serverSocket = new ServerSocket(指定的端口port);

Socket clientsocket= mServerSocket.accept();

(若需連接配接多個用戶端,可以用個循環來接收客戶的請求)

client端:

使用Socket

Socket socket = new Socket("服務端ip", 指定的端口port);

至此建立了用戶端與服務端的連接配接,通過流來接收與發送資料

常見問題:

1、android主線程是不允許耗時操作的,即連接配接的過程不能放在主線程,需單獨建立一個子線程;

2、更新UI的話,是不允許子線程更新的,可以通過Handler進行異步更新;

3、要想保持長連接配接,可在client端增加心跳包代碼,定時向server端發送資料包,保持活性;

4、如果有多個android界面需要進行連接配接,可以考慮用Android四大元件之一service;

5、如要傳送對象,可用json将對象轉化為string類型進行傳送。

PS:可以去看看apache mina、netty架構