java网络编程常用方法

UDP
Inetaddress常用方法
方法声明 功能描述
InetAddress getByName(String host)                      获取指定主机的IP地址
InetAddress getLocalHost() 获取本地主机地址
String getHostName() 获取本地主机的主机名
boolean isReachable(int timeout) 判断在限定时间内指定的IP地址是否可以访问           
String getHostAddress() 获取字符串格式的原始IP地址
复制代码
 public static void main(String[] args) throws Exception {
        //获取本机InetAddress对象
        InetAddress address = InetAddress.getLocalHost();
        //获取本地主机IP
        System.out.println(address);
        //获取panther9985.icu的主机对象
        InetAddress address1 = InetAddress.getByName("www.panther9985.icu");
        System.out.println(address1);
        //获取原始IP
        System.out.println(address.getHostAddress());
        //获取本地主机名
        System.out.println(address.getHostName());
        //判断0.5秒内是否可访问
        System.out.println(address.isReachable(500));
    }
复制代码

DatagramSocket常用方法

方法声明 功能描述
 void receive(DatagramPacket p)       用于接受DatagramPacket数据报,在接受之前一直处于阻塞状态,如果发送信息比数据报长,数据将被截取
void send(DatagramPacket p) 用于发送DatagramPacket数据报,数据报中需包含数据、数据长度、ip地址、端口号
void close()

关闭当前Socket,释放资源

 

复制代码
 //定义一个指定端口的发送端
        DatagramSocket client = new DatagramSocket(3000);
        //定义要发送的数据
        String str= "hello world!";
        //将数据封装成数据报,发送到指定地址
        InetAddress addr = InetAddress.getByName("localhost");
        DatagramPacket packet = new DatagramPacket(str.getBytes(),str.length(),addr,9985);
        //发送数据
        System.out.println("开始发送数据");
        client.send(packet);
        client.close(); 

//定义一个指定端口的接收端对象
        DatagramSocket server = new DatagramSocket(9985);
        //定义一个字节数组接收数据
        byte[] bys = new byte[1024];
        //定义一个数据报对象,封装接受的数据
        DatagramPacket packet = new DatagramPacket(bys,bys.length);
//等待接受数据,在没接收到数据之前处于阻塞状态
    server.receive(packet);
//调用String的构造方法将数据报转换成字符串数据
    String str = new String(packet.getData(),0,packet.getLength());
    System.out.println("从"+packet.getAddress()+"发送的信息为"+str);
复制代码

DatagramPacket常用方法

方法声明 功能描述
InetAddress getAddress()              获取接受端或发送端的IP地址
int getPort() 获取接受端或发送端的端口号
byte[] getData() 获取接受端或者发送端的数据,一般用于接受端          
int getLength() 获取接收端或发送端数据的长度
复制代码
 String str2= "hello world!";
//        System.out.println(str.getBytes().length);
//        System.out.println(str.length());
        //将数据封装成数据报,发送到指定地址
        InetAddress addr2 = InetAddress.getByName("localhost");
        DatagramPacket packet2 = new DatagramPacket(str2.getBytes(),str2.length(),addr,9985);
        System.out.println(packet2.getAddress());//localhost/127.0.0.1
        System.out.println(packet2.getPort()); //9985
        System.out.println(packet2.getData());    //[B@b1bc7ed
        System.out.println(packet2.getLength());//12
复制代码

TCP

ServerSocket的常用方法

方法声明 功能描述
Socket accept() 用于等待客户端的连接,在客户端连接之前处于阻塞状态,如果有客户端连接会返回一个Socket对象
Inetaddress getInetAddress()       返回一个Inetaddress对象,该对象封装了ServerSocket绑定的IP地址
boolean isClosed() 判断ServerSocket是否关闭
void bind(SocketAddress endpoint)         用于将ServerSocket对象绑定到指定的IP地址和端口号
复制代码
//创建ServerSocket对象
        ServerSocket server = new ServerSocket();
         //接收数据
            server.accept();
            //获取地址
            InetAddress address = server.getInetAddress();
            System.out.println(address);
            //判断是否关闭
            System.out.println(server.isClosed());            
复制代码

Socket常用方法

方法声明 功能描述
int getPort() 返回Socket连接远程服务端的端口号
InetAddress getLocalAddress()        该方法获取Socket对象绑定的IP地址
void close()

关闭Socket连接,结束本次通信

InputStream getInputStream() 返回一个InputStream类型的输入流对象,如果对象是ServerSocket返回,读取Socket的数据,反之对象是Socket返回,读取ServerSocket的数据
OutputStream getOutputStream() 返回一个OutputStream类型的输入流对象,如果对象是ServerSocket返回,向Socket发送数据,反之对象是Socket返回,向ServerSocket发送数据
posted @   panther125  阅读(46)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示