• JAVA Socket编程(一)之UDP通信


    常见的通讯协议有udp和tcp。

    --将数据及源、目的封装在数据包中,不需要建立连接;

    --每个数据包的大小限制在64k以内;

    --因无连接,是不可靠协议;

    --不需要建立连接,所以传输速度快,但是容易丢失数据;

    总之:Udp是面向无连接的通讯协议,传输数据时,不管对端服务是否启动,直接发送。

    日常中使用Udp技术的软件有:飞秋、视频会议等;

    分为客户端、服务器端

    服务器段代码如下:

     1 package udp;
     2 
     3 import java.net.DatagramPacket;
     4 import java.net.DatagramSocket;
     5 
     6 public class Server {
     7     public static void main(String[] args) {
     8         DatagramSocket ds=null;
     9         DatagramPacket dp=null;
    10         try {
    11             ds=new DatagramSocket(9000);//服务端口
    12             byte[] b=new byte[1024];//用于接收客户端的数据
    13             dp=new DatagramPacket(b, b.length);
    14             ds.receive(dp);//接收
    15             String me=new String (dp.getData(),0,dp.getLength());//得到字符串
    16             System.out.println(me);
    17             
    18             
    19             
    20     
    21             ds=new DatagramSocket();
    22             String me2="ok";
    23             dp=new DatagramPacket(me2.getBytes(), me2.length(), dp.getAddress(), dp.getPort());//直接根据数据报获取到获取数据的地址,端口
    24             ds.send(dp);//响应数据
    25         } catch (Exception e) {
    26             // TODO: handle exception
    27             e.printStackTrace();
    28         }
    29     }
    30 }


    客户端代码如下:

     1 package udp;
     2 
     3 import java.net.DatagramPacket;
     4 import java.net.DatagramSocket;
     5 import java.net.InetAddress;
     6 
     7 public class Client {
     8     public static void main(String[] args) {
     9         DatagramSocket ds=null;
    10         DatagramPacket dp=null;
    11         try {
    12             ds=new DatagramSocket();
    13             String message="hello";
    14             dp=new DatagramPacket(message.getBytes(), message.length(), InetAddress.getByName("localhost"), 9000);
    15             ds.send(dp);
    16             
    17         
    18             byte[] b=new byte[1024];
    19             dp=new DatagramPacket(b, b.length);
    20             ds.receive(dp);
    21             String me=new String (dp.getData(),0,dp.getLength());
    22             System.out.println(me);
    23             
    24         } catch (Exception e) {
    25             // TODO: handle exception
    26             e.printStackTrace();
    27         }
    28     }
    29 }

    tcp编程查看:http://www.cnblogs.com/GH0522/p/8119533.html

  • 相关阅读:
    Window 下配置ChromeDriver(简单4步完成)[转]
    selenium之 chromedriver与chrome版本映射表(更新至v2.46)[转]
    学习网站
    如何理解python中的类和方法(转)
    面试题整理20191127
    mysql 慢查询
    python学习--代码组织实例
    ubuntu下安装Matlab
    SkinPP for VC
    C++中的4个类型转换关键字
  • 原文地址:https://www.cnblogs.com/GH0522/p/8119289.html
Copyright © 2020-2023  润新知