UDP编程:
DatagramSocket类:
就如之前所提到的,DatagramSocket是用于UDP通信使用的Socket
DatagramSocket的构造方法有3种:
DatagramSocket():
这种构造方法创建出的Socket主要是用于先向对方发送数据的。
由于在创建该Socket时没有指定端口号,因此在发送数据时,系统会首先给该Socket随机分配一个当前没有在使用的端口号,并将该端口号信息封装在发送的数据包中并发送。
当接收方获取到数据后,由于数据包中包含了发送方的IP和端口号信息,因此接收方就可以按照数据包中所包含的端口号来向发送方进行回复。
DatagramSokcet(int port):
由于在创建Socket时指定了端口号,所以无论在什么时候启动这个Socket,该Socket所使用的端口号都是一样的
这种构造方法创建出的Socket主要是用于不定时收发数据的。
DatagramSocket(int port, InetAddress Iaddr);
这种构造方法主要是用于在多网络环境下指定当前计算机所使用的IP地址的。
DatagramSocket中常用的方法:
close():当该Socket通信完毕时,需要主动调用close方法来关闭这个Socket,以便释放出该端口供其他资源使用
send(DatagramPacket p):发送一个数据包
receive(DatagramPacket p):接收一个数据包
DatagramPacket类:
DatagramPacket类表示的就是需要发送的数据包,它封装了需要发送的数据信息
DatagramPacket类的构造方法有2种:
DatagramPacket(byte [] buf, int length):指定需要发送的数据内容和大小
DatagramPacket(byte [] buf, int length, InetAddress address, int port):指定需要发送的数据内容和大小,并指定接受方的IP和端口号(就好像在信封上写明了地址)
DatagramPacket中常用的方法:
getInetAddress():获取发送方的IP地址
getPort():获取发送方所使用的端口号
getData():获取发送方发送的整个字节数组
getLength():获取发送方发送的字节数组中实际所包含的字节数
InetAddress类
InetAddress是用于表示计算机IP地址的一个类
InetAddress中常用的方法:
getByName():根据计算机名获取一个InetAddress对象,该方法是static的
getHostAddress():根据计算机的IP获取一个InetAddress对象,该方法是static的
*字符串与字节数组的互相转换:
调用字符串的getBytes()方法,可以返回这个字符串所对应的字节数组
调用new String(byte [] bytes, int start, int length),可以将字节数组转换成字符串
---------------------- android培训、 java培训、期待与您交流! ----------------------