• 毕向东udp学习笔记1


    参看了毕向东老师的视频教程,准备直接用EditPlus记事本来直接敲Java代码,好好学习一下udp部分,GUI部分,线程部分,加油

     项目功能:

      实现udp简单的发送接收功能。

    当使用EditPlus时,编辑好Demo.java后,

    进入该文件的路径,按住Shift键,鼠标右键,显示在此处打开命令行窗口,好处是路径直接显示

    步骤:

    1. javac demo.java

    2. java demo

    截图:

    发送端代码:

     1 import java.net.*;
     2 import java.io.*;
     3 
     4 public class udpSend
     5 {
     6     /*
     7      *记得抛异常
     8     */
     9     public static void main(String[] args) throws IOException{
    10         
    11         System.out.println("发送端启动...");
    12         /*
    13         *创建UDP传输的发送端
    14         * 思路:
    15         * 1.建立udp的socket服务(new socket)
    16         * 2,将要发送的数据封装到数据包中。(packet)
    17         * 3,通过udp的socket服务将数据包发送出去(send)
    18         * 4,关闭socket服务(close)
    19 
    20         **抛一个大异常:IOException
    21         */
    22 
    23         //1.udpsocket服务对象,使用DatagramSocket创建,可以指明本地IP和端口
    24         DatagramSocket ds = new DatagramSocket(8888);
    25 
    26         //2.将要发送的数据封装到数据包中
    27         String str ="udp传输,哥们,我是客户端";
    28         byte[] buf =str.getBytes();
    29         DatagramPacket dp = new DatagramPacket(buf,buf.length,InetAddress.getByName("192.168.1.103"),10000);
    30 
    31         //3.udp发送,使用socket服务将数据包发送出去
    32         ds.send(dp);
    33 
    34         //4.关闭连接
    35         ds.close();
    36 
    37         
    38     }
    39 }

    接收端代码:

    import java.net.*;
    import java.io.*;
    
    public class udpRecv
    {
        /*
        * 创建UDP传输的接收端
        * 1.建立udp socket服务,因为是要接收数据,必须指明端口号
        * 2,创建数据包,用于存储接收到的数据。方便用数据包对象的方法处理数据
        * 3,使用socket服务的receive方法将接收的数据存储到数据包中
        * 4,通过数据包的方法解析数据包中的数据
        * 5,关闭资源
    
        *抛一个大异常:IOException
        */
        public static void main(String[] args) throws IOException{
            //1,创建udp socket服务
            DatagramSocket ds = new DatagramSocket(10000);
    
            //2,创建数据包
            byte[] buf =new byte[1024];
            DatagramPacket dp =new DatagramPacket(buf,buf.length);
    
            //3,使用接收的方法将数据包存储到数据包中
            ds.receive(dp);//阻塞式
    
            //4.通过数据包对象的方法,解析其中的数据
            String ip = dp.getAddress().getHostAddress();
            int port  = dp.getPort();
            String content = new String(dp.getData(),0,dp.getLength());
    
    
            //5关闭资源
            ds.close();
    
            System.out.println(ip+"::" +port+":"+content);
            
        }
    }

    需要注意的是:

    1.一般设计网络部分都要导入.net .io包

    2.抛异常部分,直接

    throws IOException
  • 相关阅读:
    【转】跨域的理解与实现
    【3.5】从今天开始学习WCF技术
    LAB.js使用
    资源文件的动态加载
    C#对图片文件的压缩、裁剪操作初探
    WCF技术剖析_学习笔记之一
    SQL 写入调优
    【转】Nosql,为什么要使用
    wcf配置文件
    wcf错误
  • 原文地址:https://www.cnblogs.com/shuqingstudy/p/4928087.html
Copyright © 2020-2023  润新知