using Articulate_Network; using Articulate_Network.Managers; using MIT_Builder_Client.Handlers; using MIT_Packets; using MIT_Packets.Enums; using MIT_Packets.Transfer; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Linq; using System.Net.NetworkInformation; using System.Text; using System.Threading.Tasks; namespace MIT_Builder_Client { class Program { static Client client; public static ClientStatus status = ClientStatus.Waiting; static void Main(string[] args) { AnnouncePacket.Register(); client = new Client(); client.Connect("10.136.5.59", 50).ContinueWith(t => { if (t.Result.Connected) { Console.WriteLine(); Console.WriteLine("Successfully connected to master server."); AnnounceClient(); } }); client.DataReceived += Client_DataReceived; Console.ReadLine(); } static void AnnounceClient() { string macAddress = NetworkInterface.GetAllNetworkInterfaces().Where(nic => nic.OperationalStatus == OperationalStatus.Up).Select(nic => nic.GetPhysicalAddress().ToString()).FirstOrDefault(); client.SendPacket(new AnnouncePacket() { Type = 1, RequestConfig = true, MacAddress = macAddress }); } private static void Client_DataReceived(object sender, Articulate_Network.Events.DataReceivedEventArgs e) { //Console.WriteLine($"Received Packet: {e.Packet.GetType().Name}"); if (e.Packet is StartFileTransferPacket || e.Packet is SendFileChunkPacket || e.Packet is EndFileTransferPacket) FileTransferHandler.HandleTransfer(e.Packet); } } }