Click or drag to resize

TcpClientOpenAsync(Boolean, String, Int32, NotifyDataChangedEventHandler) Method

Opens a TCP connection.

Namespace: Demo3D.Net.Protocols
Assembly: Demo3D.IO (in Demo3D.IO.dll) Version: 19.00.00
Syntax
C#
public static Task<Client<IPacketIOService>> OpenAsync(
	bool sync,
	string host,
	int port,
	NotifyDataChangedEventHandler dataChangedHandler
)

Parameters

sync  Boolean
If true, the Task returned is guaranteed to be complete.
host  String
The host to connect to.
port  Int32
The port to connect to.
dataChangedHandler  NotifyDataChangedEventHandler
Data received handler.

Return Value

TaskClientIPacketIOService
A new TCP client.
Example
C#
// Open a new connection, calling DataReceived on every packet received.
public async Task ReceiveMessagesAsync(string host, int port) {
    await TcpClient.OpenAsync(sync: false, host, port, DataReceived);
}

// Called when data is received.
void DataReceived(ProtocolSocket socket, object service, NotifyDataChangedEventArgs e) {
    var    io      = (IPacketIOService)service;    // TcpClient 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: " + str);

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