ZeroConfService
Overview
The ZeroConfService class holds information about discovered services. In the Remoting SDK this class is used by other classes from the RemObjects.SDK.ZeroConf namespace to manipulate information about discovered services. For example the ZeroConfBrowser class uses instances of the ZeroConfService class to hold a list of discovered services (see the ZeroConfBrowser property).
Use Case
This class can be used to gain access to specific information about a discovered service. The example below shows how to use this class to resolve a domain as well as a service type and name to a real address and port.
private void zeroConfBrowser_ServiceAdded(object sender, RemObjects.SDK.ZeroConf.ZeroConfBrowseResultArgs args)
{
ZeroConfService serv = args.Record;
LogMessage(String.Format("Discovered new service: {0}", serv.Name));
if (serv.TryResolve())
LogMessage(String.Format("Service resolved. Host name: {0} Port number: {1}",
serv.HostTarget.Replace(LOCAL_SUFFIX, String.Empty), serv.Port));
else
LogMessage("Service resolve failed!");
}
Note: Take a look at the Bonjour Discovery Sample (.NET) shipped with the Remoting SDK to see service discovery in action.
Location
- Reference: RemObjects.SDK.ZeroConf.dll
- Namespace: RemObjects.SDK.ZeroConf
constructor
Creates a new instance of the ZeroConfService class.
constructor(domain: String; name: String; type: String)
ZeroConfService(String domain, String name, String type)
Sub New(domain As String, name As String, type As String)
Parameters:
- domain: Service domain name
- name: Service name
- type: Type name of the service
Addresses
Gets a list of the server IP addresses. If the host is not resolved yet a DNSServiceException exception will be raised while accessing this property.
property Addresses: array of IPAddress read write;
IPAddress[] Addresses { get; set; }
Property Addresses() As IPAddress()
BeginResolve (AsyncCallback, Object): IAsyncResult
Begins to asynchronously resolve a domain as well as a service type and name to a real address and port with a 10 second timeout.
method BeginResolve(callback: AsyncCallback; state: Object): IAsyncResult
IAsyncResult BeginResolve(AsyncCallback callback, Object state)
Function BeginResolve(callback As AsyncCallback, state As Object) As IAsyncResult
Parameters:
- callback: Callback method that will be called once the resolve operation is completed.
- state: Object containing state information for this request
BeginResolve (TimeSpan, AsyncCallback, Object): IAsyncResult
Begins to asynchronously resolve a domain as well as a service type and name to a real address and port with a provided timeout.
method BeginResolve(timeout: TimeSpan; callback: AsyncCallback; state: Object): IAsyncResult
IAsyncResult BeginResolve(TimeSpan timeout, AsyncCallback callback, Object state)
Function BeginResolve(timeout As TimeSpan, callback As AsyncCallback, state As Object) As IAsyncResult
Parameters:
- timeout: Resolve operation timeout
- callback: Callback method that will be called once the resolve operation is completed.
- state: Object containing state information for this request
CheckResolved protected
Checks if the service is already resolved. Raises the DNSServiceException exception if the service is not resolved yet.
This method is called in the property getter methods of this class.
method CheckResolved
void CheckResolved()
Sub CheckResolved()
Domain
Gets the service domain.
property Domain: String read;
String Domain { get; }
ReadOnly Property Domain() As String
EndResolve
Ends a pending asynchronous resolve operation.
method EndResolve(ar: IAsyncResult)
void EndResolve(IAsyncResult ar)
Sub EndResolve(ar As IAsyncResult)
Parameters:
- ar: IAsyncResult that stores state information
FullDomainName
Gets the full domain name of the service.
If the service is not resolved yet then accessing this property will result in a DNSServiceException exception.
property FullDomainName: String read write;
String FullDomainName { get; set; }
Property FullDomainName() As String
HostTarget
Gets the server host name.
If the service is not resolved yet then accessing this property will result in a DNSServiceException exception.
property HostTarget: String read write;
String HostTarget { get; set; }
Property HostTarget() As String
Name
Gets the server name.
property Name: String read;
String Name { get; }
ReadOnly Property Name() As String
Port
Gets the port that is used by the remote server that hosts the current service.
If the service is not resolved yet then accessing this property will result in a DNSServiceException exception.
property Port: Int32 read write;
Int32 Port { get; set; }
Property Port() As Int32
Resolve
Resolves a domain as well as a service type and name to a real address and port with a 10 second timeout. If the resolve operation was terminated by timeout or if the server returns an error, a ZeroConfException exception will be raised.
method Resolve
void Resolve()
Sub Resolve()
Resolve (TimeSpan)
Resolves a domain as well as a service type and name to a real address and port with a provided timeout. If the resolve operation was terminated by timeout or if the server returns an error, a ZeroConfException exception will be raised.
method Resolve(timeout: TimeSpan)
void Resolve(TimeSpan timeout)
Sub Resolve(timeout As TimeSpan)
Parameters:
- timeout: Resolve operation timeout
Resolved
Gets a flag indicating whether the server adress and port are already resolved.
property Resolved: Boolean read write;
Boolean Resolved { get; set; }
Property Resolved() As Boolean
TryResolve
Tries to resolve a domain as well as a service type and name to a real address and port with a 10 second timeout. If the resolve operation was terminated by timeout or if the server returns an error, this method will return false.
method TryResolve: Boolean
Boolean TryResolve()
Function TryResolve() As Boolean
TryResolve (TimeSpan): Boolean
Tries to resolve a domain as well as a service type and name to a real address and port with a provided timeout. If the resolve operation was terminated by timeout or if the server returns an error, this method will return false.
method TryResolve(timeout: TimeSpan): Boolean
Boolean TryResolve(TimeSpan timeout)
Function TryResolve(timeout As TimeSpan) As Boolean
Parameters:
- timeout: Resolve operation timeout
TxtRecord
Gets a dictionary with additional information about the server.
If the service is not resolved yet then accessing this property will result in a DNSServiceException exception.
property TxtRecord: IDictionary<String, array of Byte> read write;
IDictionary<String, array of Byte> TxtRecord { get; set; }
Property TxtRecord() As IDictionary<String, array of Byte>
TxtRecordStr
Gets a dictionary with additional information about the server. This dictionary contains the same values as the TxtRecord dictionary except that values contained there are converted into strings.
If the service is not resolved yet then accessing this property will result in a DNSServiceException exception.
property TxtRecordStr: IDictionary<String, String> read write;
IDictionary<String, String> TxtRecordStr { get; set; }
Property TxtRecordStr() As IDictionary<String, String>
Type
Gets the service type name.
property Type: String read;
String Type { get; }
ReadOnly Property Type() As String
Addresses
Gets a list of the server IP addresses. If the host is not resolved yet a DNSServiceException exception will be raised while accessing this property.
property Addresses: array of IPAddress read write;
IPAddress[] Addresses { get; set; }
Property Addresses() As IPAddress()
Domain
Gets the service domain.
property Domain: String read;
String Domain { get; }
ReadOnly Property Domain() As String
FullDomainName
Gets the full domain name of the service.
If the service is not resolved yet then accessing this property will result in a DNSServiceException exception.
property FullDomainName: String read write;
String FullDomainName { get; set; }
Property FullDomainName() As String
HostTarget
Gets the server host name.
If the service is not resolved yet then accessing this property will result in a DNSServiceException exception.
property HostTarget: String read write;
String HostTarget { get; set; }
Property HostTarget() As String
Name
Gets the server name.
property Name: String read;
String Name { get; }
ReadOnly Property Name() As String
Port
Gets the port that is used by the remote server that hosts the current service.
If the service is not resolved yet then accessing this property will result in a DNSServiceException exception.
property Port: Int32 read write;
Int32 Port { get; set; }
Property Port() As Int32
Resolved
Gets a flag indicating whether the server adress and port are already resolved.
property Resolved: Boolean read write;
Boolean Resolved { get; set; }
Property Resolved() As Boolean
TxtRecord
Gets a dictionary with additional information about the server.
If the service is not resolved yet then accessing this property will result in a DNSServiceException exception.
property TxtRecord: IDictionary<String, array of Byte> read write;
IDictionary<String, array of Byte> TxtRecord { get; set; }
Property TxtRecord() As IDictionary<String, array of Byte>
TxtRecordStr
Gets a dictionary with additional information about the server. This dictionary contains the same values as the TxtRecord dictionary except that values contained there are converted into strings.
If the service is not resolved yet then accessing this property will result in a DNSServiceException exception.
property TxtRecordStr: IDictionary<String, String> read write;
IDictionary<String, String> TxtRecordStr { get; set; }
Property TxtRecordStr() As IDictionary<String, String>
Type
Gets the service type name.
property Type: String read;
String Type { get; }
ReadOnly Property Type() As String
constructor
Creates a new instance of the ZeroConfService class.
constructor(domain: String; name: String; type: String)
ZeroConfService(String domain, String name, String type)
Sub New(domain As String, name As String, type As String)
Parameters:
- domain: Service domain name
- name: Service name
- type: Type name of the service
BeginResolve (AsyncCallback, Object): IAsyncResult
Begins to asynchronously resolve a domain as well as a service type and name to a real address and port with a 10 second timeout.
method BeginResolve(callback: AsyncCallback; state: Object): IAsyncResult
IAsyncResult BeginResolve(AsyncCallback callback, Object state)
Function BeginResolve(callback As AsyncCallback, state As Object) As IAsyncResult
Parameters:
- callback: Callback method that will be called once the resolve operation is completed.
- state: Object containing state information for this request
BeginResolve (TimeSpan, AsyncCallback, Object): IAsyncResult
Begins to asynchronously resolve a domain as well as a service type and name to a real address and port with a provided timeout.
method BeginResolve(timeout: TimeSpan; callback: AsyncCallback; state: Object): IAsyncResult
IAsyncResult BeginResolve(TimeSpan timeout, AsyncCallback callback, Object state)
Function BeginResolve(timeout As TimeSpan, callback As AsyncCallback, state As Object) As IAsyncResult
Parameters:
- timeout: Resolve operation timeout
- callback: Callback method that will be called once the resolve operation is completed.
- state: Object containing state information for this request
CheckResolved protected
Checks if the service is already resolved. Raises the DNSServiceException exception if the service is not resolved yet.
This method is called in the property getter methods of this class.
method CheckResolved
void CheckResolved()
Sub CheckResolved()
EndResolve
Ends a pending asynchronous resolve operation.
method EndResolve(ar: IAsyncResult)
void EndResolve(IAsyncResult ar)
Sub EndResolve(ar As IAsyncResult)
Parameters:
- ar: IAsyncResult that stores state information
Resolve
Resolves a domain as well as a service type and name to a real address and port with a 10 second timeout. If the resolve operation was terminated by timeout or if the server returns an error, a ZeroConfException exception will be raised.
method Resolve
void Resolve()
Sub Resolve()
Resolve (TimeSpan)
Resolves a domain as well as a service type and name to a real address and port with a provided timeout. If the resolve operation was terminated by timeout or if the server returns an error, a ZeroConfException exception will be raised.
method Resolve(timeout: TimeSpan)
void Resolve(TimeSpan timeout)
Sub Resolve(timeout As TimeSpan)
Parameters:
- timeout: Resolve operation timeout
TryResolve
Tries to resolve a domain as well as a service type and name to a real address and port with a 10 second timeout. If the resolve operation was terminated by timeout or if the server returns an error, this method will return false.
method TryResolve: Boolean
Boolean TryResolve()
Function TryResolve() As Boolean
TryResolve (TimeSpan): Boolean
Tries to resolve a domain as well as a service type and name to a real address and port with a provided timeout. If the resolve operation was terminated by timeout or if the server returns an error, this method will return false.
method TryResolve(timeout: TimeSpan): Boolean
Boolean TryResolve(TimeSpan timeout)
Function TryResolve(timeout As TimeSpan) As Boolean
Parameters:
- timeout: Resolve operation timeout