Android Socket通訊

1 簡介網絡

    Socket 套接字節 ,是基於TCP/IP 協議 傳輸層封裝 ,做用:做爲網絡層和應用層的紐帶socket

2 Socket 和 SocketServer  this

   socket做爲客戶端,SocketServer做爲服務端,一般由Socketserver實例調用accpt方法來監聽Socket是否鏈接,若是鏈接則accpt方法返回Socket對象  ,數據以流的方式進行傳輸。.net

3 運用線程

與wifi模塊鏈接server

注意:IP地址不可爲虛擬機IP,客戶端和服務端監聽得端口必須一致,數據處理通常在線程中處理對象

/*線程能夠經過三種方式建立繼承

  1 繼承 Thread get

  2 繼承Runableinput

  3 直接經過線程池建立TheadPool

*/

//客戶端

public class   SocketClinet extends Thread{

//數據流操做對象

private InputStream input;

private outPutStream output;

//網絡鏈接套字節

private Socket socket;

//Android消息對象 用於處理UI線程與子線程的數據更新

private Handler hcline;

public  SocketClinet(Handler  hand,Socket s){

this.hcline=hand;

this.socket =s;

}

@overwrite

public void run{

//循環處理消息

try

{

while(true)

{

//socket不爲空便是已鏈接

     if(socket!=null)

    {

    input=socket.getInputStream();

   out=socket.getoutputStream();

//讀取數據   

byte  [] data=new byte [1024];

   int len=input.read(data);

//向UI傳輸數據

//what爲標識  obj爲數據

   hcline.SendMessage(hcline.obtrinMessage(what:23,len,-1,obj:data));

//判斷輸出流是否爲空 不爲空則發送小段數據做爲心跳包 用於保持鏈接

if(output!=null)

{

output.write(24);

output.flush();

}    

}

}

}

catch(Eception e)

{

e.printStrak();}

}   

相關文章
相關標籤/搜索