zoukankan      html  css  js  c++  java
  • UDP

    /*
    通信的流程:
    1、找到对方IP;
    2、数据要发送到对方指定的应用程序上,为了标识这些应用程序,所以给这些网络应用程序进行标识,为了方便程序,称为端口,逻辑端口。
    3、定义一个通讯规则,这个通讯规则称为协议。即TCP/IP协议。数字0-65535。(mysql默认:3306。tomcat默认:80)
    
    OSI参考模型:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。通过各层对数据进行封装
    
    UDP:面向无连接,接收方没有数据就丢失
    1、将数据及源和目的封装成数据包中,不需要建立连接,
    2、每个数据的大小控制在64k内
    3、因无连接,是不可靠协议。
    4、不需要建立连接,速度快
    
    TCP:
    1、建立连接,形成传输数据的通道
    2、在连接中进行大数据量的传输。
    3、通过三次完成连接,安全
    4、必须建立连接,效率低
    
    Socket:
    1、就是为网络服务提哦功能的一种机制,
    2、通讯两端都有Socket.
    3、网络通讯的实质就是Socket的通讯。
    4、数据在两个Socket之间通过IO传输。
    */
    /*
    通过UDP传输方式,发送一段文字:
    1、先建立Udpsocket服务。
    2、提供数据,并将数据封装到数据包中
    3、通过socket的发送功能,将数据包发送出去。
    4、关闭资源。
    */
    import java.net.*;
    import java.lang.Exception;
    class  UdpSendDemo
    {
    	public static void main(String[] args) throws Exception
    	{
    		//建立udp服务,通过DatagramSocket建立对象,定义一个端口
    		DatagramSocket ds = new DatagramSocket(1000);
    
    		//确定数据,并封装成数据包,DatagramPacket(byte[] buf,int length,InetAddress,int port);参数依次:内容、长度、IP、端口号
    		byte [] buf = "welcom to china".getBytes();
    		DatagramPacket dp = new DatagramPacket(buf,buf.length,InetAddress.getByName("192.168.1.254"),10000);
    
    		//通过Socket服务,将已有数据发送出去
    		ds.send(dp);
    
    		//关闭资源
    	}
    }
    
    /*
    用于接收并处理数据的接收端
    定义接收端的时候,通常会监听一个端口,其实就是制定接收方定义一个ip数字标识,供交互
    思路:
    1、定义upd的服务。
    2、定义一个数据包,存储接收到的字节数据,因为数据包中有方法可以提取数据包中的信息。
    3、通过Socket服务的receive方法将接收得到的数据存入已定义好的数据包中。
    4、通过数据包对象的特有功能,将这些数据取出,打印在控制台上。
    5、关闭资源。
    */
    class UdpReceive
    {
    	public static void main(String []args) throws Exception
    	{
    		//创建udp的服务,要制定一个端口,保持和发送方一致
    		DatagramSocket ds =new DatagramSocket(1000);
    
    		//定义数据包,用于存储数据
    		byte[] buf = new byte[1024];
    		DatagramPacket dp = new DatagramPacket(buf,buf.length);
    
    		//通过服务的receive方法,将接收到额数据存入到数据包中。
    		ds.receive(dp);
    
    		//通过数据包中的方法获取数据
    		String ip = dp.getAddress().getHostAddress();
    		String data = new String(dp.getData(),0,dp.getLength());
    
    		int port =dp.getPort();
    		System.out.println(ip + ".." + data + ".." + port);
    
    		//关闭资源
    		ds.close();
    	}
    }
    

  • 相关阅读:
    LOD
    优化
    Shader
    资源:创建 加载 存储 使用 ---- 热更新
    内存
    分辨率自适应
    基础知识 索引
    【转】七年IT经验的七个总结
    c#
    绘制原理
  • 原文地址:https://www.cnblogs.com/dengshiwei/p/4258429.html
Copyright © 2011-2022 走看看