⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ipmpack.java

📁 Java 的飞鸽传书的源代码! 非常好用!!
💻 JAVA
字号:
/*
 *	IP Messenger Packet Class
 *		1997/10/14 (C) Copyright T.Kazawa (Digitune)
 */

package ipmsg;

import java.io.UnsupportedEncodingException;
import java.util.StringTokenizer;
import java.util.NoSuchElementException;

import JP.digitune.util.ByteBuffer;
import JP.digitune.util.StringReplacer;

public class IPMPack {
	private byte[] pack;
	private long version = 0, no = 0, command = 0;
	private String user = null, host = null, extra = null, group = null;

	public IPMPack(long argver, long argno, String arguser
		, String arghost, long argcommand, String argextra, String arggroup) {
		version = argver;
		no = argno;
		user = arguser;
		host = arghost;
		command = argcommand;
		extra = argextra;
		group = arggroup;
	}

	private void packed() {
		StringBuffer strbuf = new StringBuffer();
		strbuf.append(Long.toString(version)).append(":");
		strbuf.append(Long.toString(no)).append(":");
		strbuf.append(user).append(":");
		strbuf.append(host).append(":");
		strbuf.append(Long.toString(command)).append(":");
		strbuf.append(extra);
		String tmpstr = new String(strbuf);
		String ls = System.getProperty("line.separator", "\n");
		String cr = "\n";
		tmpstr = StringReplacer.replaceString(tmpstr, ls, cr);
		ByteBuffer bb = new ByteBuffer();
		try {
			bb.append(tmpstr.getBytes("SJIS"));
		} catch (UnsupportedEncodingException ex) {
			ex.printStackTrace();
			return;
		}
		byte[] nullbyte = { 0 };
		bb.append(nullbyte);
		if (group != null && !group.equals("")) {
			try {
				bb.append(group.getBytes("SJIS"));
				bb.append(nullbyte);
			} catch (UnsupportedEncodingException ex) {}
		}
		pack = bb.getBytes();
	}

	public IPMPack(byte[] buf) {
		pack = buf;
		unpacked();
	}

	private void unpacked() {
		byte[] buf = pack;
		int j = buf.length - 1;
		if (buf[j] == 0) {
			while (buf[j] == 0)
				j--;
			byte[] tmpbuf = new byte[j + 1];
			System.arraycopy(buf, 0, tmpbuf, 0, tmpbuf.length);
			buf = tmpbuf;
		}
		int i = 0;
		for (i = 0; i < buf.length; i++)
			if (buf[i] == 0)
				break;
		if (i < buf.length) {
			j = buf.length - 1;
			byte[] tmpbuf = new byte[j - i];
			System.arraycopy(buf, i + 1, tmpbuf, 0, j - i);
			try {
				group = new String(tmpbuf, "SJIS");
			} catch (UnsupportedEncodingException ex) {
				ex.printStackTrace();
			}
			tmpbuf = new byte[i];
			System.arraycopy(buf, 0, tmpbuf, 0, i);
			buf = tmpbuf;
		}
		String tmpstr;
		try {
			tmpstr = new String(buf, 0, buf.length, "SJIS");
		} catch (UnsupportedEncodingException ex) {
			ex.printStackTrace();
			return;
		}
		String ls = System.getProperty("line.separator", "\n");
		String cr = "\n";
		tmpstr = StringReplacer.replaceString(tmpstr, ls, cr).trim();
		StringTokenizer tokenizer = new StringTokenizer(tmpstr, ":", false);
		try {
			version = Long.parseLong(tokenizer.nextToken());
			no = Long.parseLong(tokenizer.nextToken());
			user = tokenizer.nextToken();
			host = tokenizer.nextToken();
			command = Long.parseLong(tokenizer.nextToken());
		} catch (NoSuchElementException ex) {
			ex.printStackTrace();
			return;
		} catch (NumberFormatException ex) {
			ex.printStackTrace();
			return;
		}
		if (tokenizer.hasMoreTokens())
			extra = tokenizer.nextToken();
		while (tokenizer.hasMoreTokens())
			extra = extra + ':' + tokenizer.nextToken();
	}

	public boolean compare(IPMPack argpack) {
		if (user.equals(argpack.getUser())
			&& host.equals(argpack.getHost())
			&& no == argpack.getNo()
			&& command == argpack.getCommand())
			return true;
		return false;
	}

	public String getKey() {
		return user+":"+host+":"+no+":"+command;
	}

	public byte[] getBytes() {
		packed();
		return pack;
	}

	public void setBytes(byte[] argpack) {
		pack = argpack;
		unpacked();
	}

	public void setVersion(long argver) {
		version = argver;
	}

	public long getVersion() {
		return version;
	}

	public long getNo() {
		return no;
	}

	public void setNo(long argno) {
		no = argno;
	}

	public String getUser() {
		return user;
	}

	public void setUser(String arguser) {
		user = arguser;
	}

	public String getHost() {
		return host;
	}

	public void setHost(String arghost) {
		host = arghost;
	}

	public void setCommand(long argcommand) {
		command = argcommand;
	}

	public long getCommand() {
		return command;
	}

	public String getExtra() {
		return extra;
	}

	public String getGroup() {
		return group;
	}

	public void setGroup(String arggroup) {
		group = arggroup;
	}

	public void setExtra(String argextra) {
		extra = argextra;
	}
}

⌨️ 快捷键说明

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