[Java基础]网络编程(DUP通信与TCP通信)

网络编程(DUP通信与TCP通信)

1 InetAddress

为了方便我们对IP地址的获取和操作,Java提供了一个类InetAddress供我们使用。
InetAddress:此类表示Internet协议(IP)地址。

创建对象


public static InetAddress getByName(String host)
                             throws UnknownHostException

用于获取一个InetAddress对象。host参数既可以是机器名称,也可以是IP地址。

获取主机名/IP地址

public String getHostName()
public String getHostAddress()

上面两个方法用于从创建好的InetAddress对象获取主机名和IP地址。

代码实例

import java.net.InetAddress;
import java.net.UnknownHostException;

public class InetAddressTest {
   
    public static void main(String[] args) throws UnknownHostException {
   
        // 静态方法创建InetAddress对象,表示一个ip地址
        InetAddress address = InetAddress.getByName("192.168.1.9");

        //获取主机名
        String name = address.getHostName();

        //获取ip地址
        String ip = address.getHostAddress();

        System.out.println("主机名:" + name);//主机名:LAPTOP-xxxxxxxx
        System.out.println("IP地址:" + ip);//IP地址:192.168.1.9

    }
}

2 UDP通信

2.1Java中的UDP通信

  • UDP协议是一种不可靠的网络协议,它在通信的两端各建立一个Socket对象,但是这两个Socket只是发送,接收数据的对象,因此对于基于UDP协议的通信双方而言,没有所谓的客户端和服务器的概念。
  • Java提供了DatagramSocket类作为基于UDP协议的Socket。 通过DatagramSocket实现UDP发送、接收数据。

由此可见理解了DatagramSocket就能理解UDP通信。接下来将基于DatagramSocket分别介绍UDP发送数据和UDP接受数据

2.2 DatagramSocket

创建对象

public DatagramSocket()
               throws SocketException

创建一个数据包套接字对象,与主机任何可用端口绑定。

public DatagramSocket(int port)
               throws SocketException

创建一个数据包套接字对象,与主机指定的端口绑定
发送/接收

public void send(DatagramPacket p)
          throws IOException
public void receive(DatagramPacket p)
             throws IOException

注意到发送/接收的是一个DatagramPacket 对象

关闭

public void close()
2.2-1 DatagramPacket

构造方法(用于发送数据)

public DatagramPacket(byte[] buf,
                      int length,
                      InetAddress address,
                      int port)

其中address为接收端的地址,port为接收端的端口
构造方法(用于该接收数据)

public DatagramPacket(byte[] buf,
                      int length)

注意!收发数据时用到的DatagramPacket需要用到不同的构造方法

获取数据/数据长度

public byte[] getData()
public int getLength()
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值