@Override public void encodeAsByteBuf(ChannelBuffer channelBuffer) throws Exception { channelBuffer.writeByte(getProtocolVersion().getByteValue()); channelBuffer.writeByte(cmdType.getByteValue()); channelBuffer.writeByte(0x00); channelBuffer.writeByte(addressType.getByteValue()); switch (addressType) { case IPv4: { channelBuffer.writeBytes(NetUtil.createByteArrayFromIpAddressString(host)); channelBuffer.writeShort(port); break; } case DOMAIN: { channelBuffer.writeByte(host.length()); channelBuffer.writeBytes(host.getBytes("US-ASCII")); channelBuffer.writeShort(port); break; } case IPv6: { channelBuffer.writeBytes(NetUtil.createByteArrayFromIpAddressString(host)); channelBuffer.writeShort(port); break; } } } }