bootpmessage.java

来自「纯java操作系统jnode,安装简单和操作简单的个人使用的Java操作系统」· Java 代码 · 共 53 行

JAVA
53
字号
/*
 * $Id: BOOTPMessage.java,v 1.1 2004/02/17 20:49:50 markhale Exp $
 */
package org.jnode.net.ipv4.bootp;

import java.net.DatagramPacket;

import org.jnode.net.SocketBuffer;

/**
 * RFC 1542.
 * @author markhale
 */
public class BOOTPMessage {

	/** Size of the BOOTP vendor-specific area (64 bytes) */
	public static final int OPTIONS_SIZE = 64;
	/** Size of the BOOTP message (300 bytes) */
	public static final int SIZE = BOOTPHeader.SIZE + OPTIONS_SIZE;

	private final BOOTPHeader header;

	/**
	 * Create a new message
	 */
	public BOOTPMessage(BOOTPHeader hdr) {
		header = hdr;
	}

	public BOOTPMessage(SocketBuffer skbuf) {
		this(new BOOTPHeader(skbuf));
	}
	public BOOTPMessage(DatagramPacket packet) {
		this(new BOOTPHeader(new SocketBuffer(packet.getData(), packet.getOffset(), packet.getLength())));
	}

	public BOOTPHeader getHeader() {
		return header;
	}

	/**
	 * Gets this message as a DatagramPacket
	 */
	public DatagramPacket toDatagramPacket() {
		final SocketBuffer skbuf = new SocketBuffer();
		skbuf.insert(OPTIONS_SIZE);

		header.prefixTo(skbuf);
		final byte[] data = skbuf.toByteArray();
		return new DatagramPacket(data, data.length);
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?