1. 程式人生 > >udp Java程式設計實現通話

udp Java程式設計實現通話

Java中網路通訊也稱作Socket(套接字、插座),要通訊的兩臺機器必須安裝Socket.

 不同的協議就有不同的Socket

 

 udp通訊協議特點:

     1.將資料及其源和目的的封裝為資料包,面向無連線

     2.每個資料包大小限制64K

     3.因為無連線,所以不可靠

     4.因為無連線,所以速度快 

     5.udp

通訊部分客戶端和服務端的,分發送端和接收端

      比如:物管的對講機,feiQ,qq,遊戲。。。


 UDP協議的Socket:

     DatagramSocket  UDP插座服務

     DatagramPacket  資料包類

        DatagramPacket(buf, length, address,port)

               buf:

傳送資料的內容

               length:傳送資料內容的長度

               address:傳送的目的IP地址物件

               port

:埠號

              

  傳送端的使用步驟:

   1.建立udp服務

   2.準備資料,把資料封裝到資料包中。傳送端的資料包要帶上IP地址和埠號

   3.呼叫udp服務

   4.關閉資源

   

 接收端的使用步驟:

  1.建議udp服務

  2.準備空的資料包接收資料

  3.呼叫udp服務

  4.關閉資源

 

package cn.udp;

 

importjava.io.IOException;

importjava.net.DatagramPacket;

importjava.net.DatagramSocket;

importjava.net.InetAddress;

public class Demo1sender {

	public static void main(String[] args) throws IOException {
		//建立udp服務
		DatagramSocket datagramSocket=new DatagramSocket();
	    //準備資料,把資料封裝到資料包中
		String data="這是一個UDP的例子";
		DatagramPacket packet=new DatagramPacket(data.getBytes(), data.getBytes().length, InetAddress.getLocalHost(), 9090);
		//呼叫UDP的服務傳送資料包
	     datagramSocket.send(packet);
	    //關閉資源---實際上就是釋放佔用的埠號
	     datagramSocket.close();
	}
	
}
package cn.udp;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
/*
 接收端的使用步驟:
  1.建議udp服務
  2.準備空的資料包接收資料
  3.呼叫udp服務
  4.關閉資源
*/

public class Demo1Receive {
 //接受端
	public static void main(String[] args) throws IOException {
	  
		//建立udp服務
		DatagramSocket socket=new DatagramSocket(9090);
		//準備空的資料包,用於儲存資料
		byte[] buf=new byte[1024];
		DatagramPacket packet=new DatagramPacket(buf, buf.length);
	    //呼叫udp服務
		socket.receive(packet);//
		//資料實際上就是儲存到了byte位元組陣列中
		//packet.getLength();獲取到了資料的長度
		System.out.println("接收到的資料"+new String(buf,0,packet.getLength()));
	    //關閉資源
		socket.close();
	}

控制檯執行接收端,當沒有接收到資料時,一直在等待

Cmd執行傳送端

 

cmd執行後,接受端接收到資料,程式停止

}