網路程式設計之UDP傳輸
1.DatagramSocket 和DatagramPacket 2.建立傳送端,接收端 3.建立資料包 4.呼叫Socket的傳送接收方法 5.關閉ocket 傳送端和接收端是兩個獨立的執行程式。
package myclass; import java.net.; / 需求:通過UDP傳輸方式,將一段文字資料傳送出去 思路: 1.建立updSocket服務 2.提供資料,並將資料封裝到資料包中。 3.通過socket服務傳送功能,將資料包發出去 4.關閉資源
*/
//傳送端
class UdpSend
{
public static void main(String[] args) throws Exception
{
//2.確定資料,並封裝成資料包。DataPacket(byte[] buf,int length,InetAddress adress,int port) byte[] buf = "udp ge men lai le".getBytes(); DatagramPacket dp = new DatagramPacket(buf,buf.length,InetAddress.getByName("192.168.1.100"),10000); //3.通過Socket服務,將已有的資料包傳送出去,通過send方法 ds.send(dp); //4.關閉資源 ds.close(); }
}
//接收端 /* 需求:定義一個應用程式,用於接收UDP傳輸的資料並處理的
思路: 1.定義udpsocket服務,通常都會監聽一個埠,其實就是給這個網路應用程式定義數字標識 方便應用處理。 2.定義一個數據包,因為要儲存接收到的位元組資料, 因為資料包中有更多的功能可以提取位元組資料中的不同資料資訊 3.通過socket服務的receive方法將受到的資料存入到已定好的資料包中 4.通過資料包物件的特有功能,將這些不同的資料取出,列印在控制檯 5.關閉資源 */
class UdpRece
{
public static void main(String[] args) throws Exception
{
//2.定義資料包,用於儲存資料
byte[] buf = new byte[1024];
DatagramPacket dp = new DatagramPacket(buf,buf.length);
//3.通過服務的receive方法將接收到的資料存入到資料包中
ds.receive(dp);
//4.通過資料包的方法獲取其中的資料
String ip = dp.getAddress().getHostAddress();
String data = new String(dp.getData(),0,dp.getLength());
int port = dp.getPort();
System.out.println(ip + "::" + data + "::" + port);
//5.關閉資源
ds.close();
}
}