TcpDotNet/TcpDotNet.ClientIntegration.../Program.cs

39 lines
1.3 KiB
C#
Raw Permalink Normal View History

using System.Net;
2022-05-18 15:39:48 +00:00
using TcpDotNet;
2022-07-05 13:55:59 +00:00
using TcpDotNet.ClientIntegrationTest;
using TcpDotNet.ClientIntegrationTest.PacketHandlers;
2022-05-18 15:39:48 +00:00
using TcpDotNet.Protocol;
using TcpDotNet.Protocol.Packets.ClientBound;
using TcpDotNet.Protocol.Packets.ServerBound;
using var client = new ProtocolClient();
2024-02-14 15:20:55 +00:00
client.Disconnected += (_, e) =>
{
Console.WriteLine($"Disconnected: {e.DisconnectReason}");
return Task.CompletedTask;
};
2022-05-18 15:39:48 +00:00
client.RegisterPacketHandler(PacketHandler<PongPacket>.Empty);
2022-07-05 13:55:59 +00:00
client.RegisterPacketHandler(new GoodbyePacketHandler());
var remoteEP = new IPEndPoint(IPAddress.Loopback, 1234);
Console.WriteLine($"Connecting to {remoteEP}");
await client.ConnectAsync(remoteEP);
2022-05-18 15:39:48 +00:00
Console.WriteLine($"Connected to {client.RemoteEndPoint}. My session is {client.SessionId}");
2022-05-18 15:39:48 +00:00
var ping = new PingPacket();
Console.WriteLine($"Sending ping packet with payload: {BitConverter.ToString(ping.Payload)}");
var pong = await client.SendAndReceiveAsync<PongPacket>(ping);
Console.WriteLine($"Received pong packet with payload: {BitConverter.ToString(pong.Payload)}");
Console.WriteLine(pong.Payload.SequenceEqual(ping.Payload) ? "Payload matches!" : "Payload does not match!");
2022-07-05 13:55:59 +00:00
await client.SendPacketAsync(new HelloPacket {Message = "Hello, world!"});
while (client.IsConnected)
{
await client.ReadNextPacketAsync();
}
await Task.Delay(-1);