void
rdataFromString(Tokenizer st, Name origin) throws IOException {
	String s = st.getString();
	address = Address.toByteArray(s, Address.IPv4);
	if (address == null)
		throw st.exception("invalid address");

	s = st.getString();
	protocol = Protocol.value(s);
	if (protocol < 0) {
		throw st.exception("Invalid IP protocol: " + s);
	}

	List list = new ArrayList();
	while (true) {
		Tokenizer.Token t = st.get();
		if (!t.isString())
			break;
		int service = Service.value(t.value);
		if (service < 0) {
			throw st.exception("Invalid TCP/UDP service: " +
					   t.value);
		}
		list.add(service);
	}
	st.unget();
	services = new int[list.size()];
	for (int i = 0; i < list.size(); i++) {
		services[i] = ((Integer) list.get(i)).intValue();
	}
}
Creates a WKS Record from the given data
@param address The IP address
@param protocol The IP protocol number
@param services An array of supported services, represented by port number.
src/main/java/core/org/xbill/DNS/WKSRecord.java