chattle-sharp/Client/Program.cs

75 lines
1.3 KiB
C#
Raw Permalink Normal View History

2024-10-06 14:08:17 +02:00
using System.Net;
using System.Net.Sockets;
const ushort port = 4444;
using var tcp = new TcpClient();
var hasQuit = false;
var serverListening = new Thread(() =>
{
var stream = new BinaryReader(tcp.GetStream());
while (true)
{
const int checkDelayMilliseconds = 100;
try
{
Console.WriteLine(stream.ReadString());
}
catch (EndOfStreamException)
{
Console.WriteLine("Server closed the connection");
break;
}
Thread.Sleep(checkDelayMilliseconds);
}
});
Console.Write("Enter a name: ");
var name = Console.ReadLine() ?? "user";
Console.Write("Enter a Chattle server address: ");
var ipAddress = IPAddress.Parse(Console.ReadLine() ?? "127.0.0.1");
tcp.Connect(ipAddress, port);
serverListening.Start();
Console.WriteLine($"Connected to {ipAddress}...");
var writer = new BinaryWriter(tcp.GetStream());
writer.Write(name);
while (!hasQuit)
{
const int checkDelayMilliseconds = 100;
var input = Console.ReadLine();
if (input == null || input.Length == 0)
{
continue;
}
if (input.StartsWith('/'))
{
switch (input.Trim()[1 ..])
{
case "quit": hasQuit = true; break;
default: Console.WriteLine($"Unknown command `{input}.`"); break;
}
}
else
{
writer.Write(input);
}
Thread.Sleep(checkDelayMilliseconds);
}
tcp.Close();
serverListening.Join();