'Create a service description.
type: fully qualified service type name
name: fully qualified service name
address: IP address as unsigned short, network byte order
port: port that the service runs on
weight: weight of the service
priority: priority of the service
properties: dictionary of properties (or a string holding the bytes for the text field)
server: fully qualified name for service host (defaults to name)'

def __init__(self, type, name, address=None, port=None, weight=0, priority=0, properties=None, server=None):

    if (not name.endswith(type)):
        raise BadTypeInNameException
    self.type = type
    self.name = name
    self.address = address
    if address:
        self.ip_type = address_type(address)
    self.port = port
    self.weight = weight
    self.priority = priority
    if server:
        self.server = server
    else:
        self.server = name
    self.setProperties(properties)
