网络编程---获取ip地址 使用UDP协议发送与接收数据

2017-06-08  本文已影响705人  李霖神谷

获取ip地址

import java.io.IOException;
import java.net.InetAddress;
//inetAddress类演示,它主要是封装关于Ip的类
public class IpClass{
    public static void main(String[] args) throws IOException{
        InetAddress ip=InetAddress.getByName("172.27.35.1");//该类没有构造方法,无法创建对象,通过类名来调用方法
        String st_ip=ip.getHostAddress();//该方法返回的是字符串类型的ip地址
        String name=ip.getHostName();//改方法返回的是主机名
        System.out.println(st_ip+"---"+name);
    }
}

UDP协议发送端

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
public class UDPclass{
    public static void main(String[] args) throws IOException{
        //创建发送端对象,此类无法对对象进行包装,发送对象需要对数据进行打包
        String value ="我是一个有用的资源";
        DatagramSocket d=new DatagramSocket();
        //为打包数据准备资源
        byte[] b=value.getBytes();
        InetAddress ip=InetAddress.getByName("172.27.35.1");
        DatagramPacket da=new DatagramPacket(b,b.length,ip,8080);
        d.send(da);
        d.close();
    }
}

UDP协议接收端


import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;

public class UDPclass2 {
    public static void main(String[] args) throws IOException {
        // 创建接收端对象
        DatagramSocket d = new DatagramSocket(8080);
        // 创建一个数组来存放发送过来的数据
        byte[] bt = new byte[1024];
        // 对数据进行拆包
        DatagramPacket dg = new DatagramPacket(bt, bt.length);
        // 拆完包后就可以进行接收数据了
        d.receive(dg);
        // 对接受过来的数据进行处理
        int length = dg.getLength();
        InetAddress ip = dg.getAddress();
        String ip_st = ip.getHostAddress();
        int poirt = dg.getPort();
        System.out.println(length + "--" + ip_st + "--" + poirt);
        d.close();
    }
}
上一篇 下一篇

猜你喜欢

热点阅读