48 lines
1.2 KiB
C#
48 lines
1.2 KiB
C#
namespace Sick.Tim781s.Colab.Interfaces;
|
|
|
|
/// <summary>
|
|
/// Interface for TCP client communication
|
|
/// </summary>
|
|
public interface ITcpClient
|
|
{
|
|
/// <summary>
|
|
/// Gets the server IP address
|
|
/// </summary>
|
|
string ServerIp { get; }
|
|
|
|
/// <summary>
|
|
/// Gets the server port
|
|
/// </summary>
|
|
ushort ServerPort { get; }
|
|
|
|
/// <summary>
|
|
/// Gets whether the client is connected
|
|
/// </summary>
|
|
bool IsConnected { get; }
|
|
|
|
/// <summary>
|
|
/// Connects to the server
|
|
/// </summary>
|
|
/// <param name="timeoutMs">Connection timeout in milliseconds</param>
|
|
void Connect(int timeoutMs = 5000);
|
|
|
|
/// <summary>
|
|
/// Disconnects from the server
|
|
/// </summary>
|
|
void Disconnect();
|
|
|
|
/// <summary>
|
|
/// Sends data to the server
|
|
/// </summary>
|
|
/// <param name="data">Data to send</param>
|
|
void Send(ReadOnlyMemory<byte> data);
|
|
|
|
/// <summary>
|
|
/// Receives data from the server
|
|
/// </summary>
|
|
/// <param name="timeoutMs">Receive timeout in milliseconds</param>
|
|
/// <returns>Received data</returns>
|
|
byte[] Receive(int timeoutMs = 5000);
|
|
}
|
|
|