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;
}
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();}
}