Click or drag to resize

CotpServerOpenAsync Method (Boolean, String, NotifyDataChangedEventHandler, Int32)

Open a COTP server. Creates a server and starts accepting connections, calling 'dataChangedHandler' with data from each connection as it arrives. This method returns after the server has been established, leaving the accepting and servicing of connections to a background thread.

Namespace:  Demo3D.Net.Protocols
Assembly:  Demo3D.IO (in Demo3D.IO.dll) Version: 15.0.2.11458
Syntax
C#
public static Task<ServerSocket> OpenAsync(
	bool sync,
	string tsap,
	NotifyDataChangedEventHandler dataChangedHandler,
	int port = -1
)

Parameters

sync
Type: SystemBoolean
If true, the Task returned is guaranteed to be complete.
tsap
Type: SystemString
The local TSAP to open the server on.
dataChangedHandler
Type: Demo3D.NetNotifyDataChangedEventHandler
Delegate for servicing new data arriving on a client connection.
port (Optional)
Type: SystemInt32
ISO port number.

Return Value

Type: TaskServerSocket
The COTP protocol socket.
Examples
C#
// Start a new server, calling DataReceived for every packet received.
public async Task StartServerAsync(string tsap) {
    await CotpServer.OpenAsync(sync: false, tsap, DataReceived);
}

// Called when data is received.
void DataReceived(ProtocolSocket socket, object service, NotifyDataChangedEventArgs e) {
    var    io      = (IPacketIOService)service;    // CotpServer uses IPacketIOService.
    var    args    = (PacketChangedEventArgs)e;    // IPacketIOService posts PacketChangedEventArgs when it raises a DataChanged event.
    var    message = args.GetData();               // Read from the packet.
    string str     = BinaryTextEncoding.FixedLengthASCII.GetString(message);

    Logger.Log("Message received: " + message);

    // Send back a reply.
    var reply = BinaryTextEncoding.NullTerminatedASCII.GetBytes("hello");
    io.Write(reply);
}
See Also