一、udp:無連線通訊。
特點:1.傳輸效率高
2.安全性低,不保證可到的資料傳輸。
開發流程:
傳送端(客戶端):
1.建立udp服務
datagramsocket ds=new datagramsocket()
2.封裝資料報(datagrampacket )
byte buff="udp test" .getbytes();
datagrampacket dp=new datagrampacket (buf,buf.length,inetaddress.getbyname("192.168.1.22"),10000);
3.傳送資料:
ds.send(dp);
4.關閉資源 close
ds.close()
接收端(服務端):
1.定義udp服務
datagramsocket ds=new datagramsocket(10000)
2.定義資料報接收資料
byte buff=new byte[1024] ;
datagrampacket dp=new datagrampacket (buf,buf.length);
3.通過udp服務接收資料報 receive
ds.receive(dp);
4.取出資料
string ip=dp.getaddress().gethostaddress();
int len=dp.getlength();
string data=new string(dp.getdata(),len);
5.關閉資源close
ds.close();
服務端:
public class udpserver extends thread
public void run()
string tag="udptest_server";
public void recive(handler handler)
//------------------------------
} catch (socketexception e) catch (ioexception e) finally
}}
客戶端**:
public class udpclient extends thread
public void run()
public void senddata(handler handler) catch (socketexception e) catch (unknownhostexception e) catch (ioexception e) finally }}
}
二、tcp:面向連線的通訊。
特點:1.傳輸效率低
2.安全性高
開發流程:
客戶端:
1.建立socket服務,指定ip和埠
socket socket=new socket("192.168.1.12",10001);
2.傳送資料,獲取socket輸出流
outputstream out=socket.getoutputstream();
out.write("tcp測試".getbytes());
3.關閉socket
s.close();
服務端:
1.建立服務端的socket服務,監聽埠
serversocket ss=new serversocket(10001);
2.通過accept方法獲取連線過來的客戶端物件
socket s=ss.accept();//會阻塞
3.獲取客戶端發過來的資料
inputstream in=s.getinputstream();
byte buf=new byte[1024];
int len=in.read(buf);//read 會阻塞
string data=new string(buff,0,len);
4.關閉資源
服務端**:
public class tcpserver extends thread
public void run()
public void recive(handler handler)
}} catch (ioexception e) finally catch (ioexception e) }}
}private byte getdata(inputstream in) catch (ioexception e)
return null;
}private void showmsg(string strmsg)
}
客戶端**:
public class tcpclient extends thread
public void run()
public void send() catch (ioexception e) finally catch (ioexception e) }}
public void showmsg(string data)
}
java基礎筆記(十一)
public class udpreceiver 4.關閉資源 public class udpsender 4.關閉資源 tcp客戶端 1.建立socket物件,傳入伺服器的ip和埠 2.通過socket物件獲取輸出流,呼叫write方法寫資料到伺服器 3.通過socket物件獲取輸入流,呼叫re...
socket程式設計(十一)
void handler int sig signal sigalrm,handler alarm 5 int ret read fd,buf,sizeof buf if ret 1 errno eintr else if ret 0 else if ret 0 while ret 0 errno ...
socket程式設計基礎
對於socket在這裡我不想究其歷史,我只想說其時它是一種程序通訊的方式,簡言之就是呼叫這個網路庫的一些api函式就能實現分布在不同主機的相關程序之間的資料交換.socket中首先我們要理解如下幾個定義概念 二是埠號 用來標識本地通訊程序,方便os提交資料.就是說程序指定了對方程序的網路ip,但這個...