udp Java编程实现通话

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yun1996/article/details/79355580

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运行后,接受端接收到数据,程序停止

}



猜你喜欢

转载自blog.csdn.net/yun1996/article/details/79355580
今日推荐