private static void Communicate(Package package) { Console.WriteLine("COMMUNICATE"); Console.WriteLine("TO {0}", package.To.Type); if (package.To.Type == BaseInfoType.Client) { foreach (var item in DataStructure.ClientList) { if (package.To.UID == item.UID) { TcpClient communicationSocket = item.Connector.ClientSocket; NetworkStream communicationStream = communicationSocket.GetStream(); TransportPackage TransportPackage = Serializer.Serialize(package); communicationStream.Write(TransportPackage.Data, 0, TransportPackage.Data.Length); communicationStream.Flush(); Console.WriteLine("SENT"); } } } else if (package.To.Type == BaseInfoType.Master) { foreach (var item in DataStructure.MasterList) { if (package.To.UID == item.UID) { TcpClient communicationSocket = item.Connector.ClientSocket; NetworkStream communicationStream = communicationSocket.GetStream(); TransportPackage TransportPackage = Serializer.Serialize(package); communicationStream.Write(TransportPackage.Data, 0, TransportPackage.Data.Length); communicationStream.Flush(); Console.WriteLine("SENT"); } } } }
public ActionResult InfoRefs( [ModelBinder(typeof(SmartHttpPathBinder))] string path, string service) { Response.ContentType = string.Format( "application/x-{0}-advertisement", service); Response.Charset = string.Empty; Response.WriteNoCache(); Response.PacketWrite(string.Format("# service={0}\n", service)); Response.PacketFlush(); if (service.Equals("git-upload-pack", StringComparison.OrdinalIgnoreCase)) { TransportPackage.AdvertiseUploadPack( path, Response.OutputStream); } else if (service.Equals("git-receive-pack", StringComparison.OrdinalIgnoreCase)) { TransportPackage.AdvertiseReceivePack( path, Response.OutputStream); } return(new EmptyResult()); }
private void Button_Click(object sender, RoutedEventArgs e) { TransportPackage package = model.DefaultPackage; package.Content = viewModel.SendText; package.PackageType = (int)PackageType.NormalMessage; model.SendMessage(package); }
private void Write(BaseInfo to, BaseInfo from) { Package package = new Package(new Command("RECEIVE", "RECEIVE".GetType()), to, from); TransportPackage TransportPackage = Serializer.Serialize(package); serverStream.Write(TransportPackage.Data, 0, TransportPackage.Data.Length); serverStream.Flush(); Console.WriteLine("WRITE"); }
public static object Deserialize(TransportPackage package) { using (var memoryStream = new MemoryStream(package.Data)) { BinaryFormatter bf = new BinaryFormatter(); bf.Binder = new Binder(); return((bf).Deserialize(memoryStream)); } }
public void SendMessage(TransportPackage package) { try { Network.Send(package); } catch { OnNetworkFailed(); } }
public ActionResult UploadPack( [ModelBinder(typeof(SmartHttpPathBinder))] string path) { Response.ContentType = "application/x-git-upload-pack-result"; Response.Charset = string.Empty; Response.WriteNoCache(); TransportPackage.Upload( path, Request.GetRequestStream(), Response.OutputStream); return(new EmptyResult()); }
private void Get() { while (true) { serverStream = masterSocket.GetStream(); TransportPackage TransportPackage = new TransportPackage(); serverStream.Read(TransportPackage.Data, 0, masterSocket.ReceiveBufferSize); Package package = (Package)Serializer.Deserialize(TransportPackage); Console.WriteLine(package.Content.ToString()); Console.WriteLine("GET"); } }
private void PackageReviced(object sender, Eventarg.PackageRevicedEventArgs e) { TransportPackage package = (TransportPackage)e.Package.Load; Dispatcher.Invoke((Action)(() => { switch ((PackageType)(package.PackageType)) { case PackageType.NormalMessage: { Msg msg = new Msg(); MsgViewModel viewModel = new MsgViewModel { Publisher = package.Name, Content = new TextBlock(new Run(package.Content)) }; msg.DataContext = viewModel; ViewModel.Msgs.Children.Add(msg); break; } case PackageType.ImageMessage: { Msg msg = new Msg(); MsgViewModel viewModel = new MsgViewModel { Publisher = package.Name, Content = new TextBlock(new InlineUIContainer(new Image() { Source = BaseToImageSource(package.Content), Height = 200 })) }; msg.DataContext = viewModel; ViewModel.Msgs.Children.Add(msg); break; } case PackageType.ChangeChannelName: ViewModel.ChannelName = package.Content; break; case PackageType.Login: DefaultPackage.ClientGuid = package.Content; break; default: ViewModel.Msgs.Children.Add(new TextBlock(new Run(package.Content))); break; } })); }
private void handleConnection() { while (true) { networkStream = null; networkStream = ClientSocket.GetStream(); TransportPackage TransportPackage = new TransportPackage(); networkStream.Read(TransportPackage.Data, 0, ClientSocket.ReceiveBufferSize); networkStream.Flush(); Package package = (Package)Serializer.Deserialize(TransportPackage); Console.WriteLine("GET PACKAGE\nType - {0}\nValue - {1}\nFrom - {2}\nTo - {3}", package.ContentType.ToString(), package.Content.ToString(), package.From.UID, package.To.UID); Communicate(package); } }
private void Write() { while (true) { Console.ReadLine(); Command command = new Command("OK", "OK".GetType()); BaseInfo to = new BaseInfo("2"); Package package = new Package(new Command(command, command.GetType()), to, MasterInfo); TransportPackage TransportPackage = Serializer.Serialize(package); serverStream.Write(TransportPackage.Data, 0, TransportPackage.Data.Length); serverStream.Flush(); Console.WriteLine("WRITE"); } }
private void Get() { while (true) { serverStream = clientSocket.GetStream(); TransportPackage TransportPackage = new TransportPackage(); serverStream.Read(TransportPackage.Data, 0, clientSocket.ReceiveBufferSize); serverStream.Flush(); Package package = (Package)Serializer.Deserialize(TransportPackage); Command command = (Command)package.Content; Console.WriteLine(command.Data); Write(package.From, ClientInfo); Console.WriteLine("GET"); } }
public PlatiniumMaster() { masterSocket.Connect(new IPEndPoint(IPAddress.Parse("127.0.0.1"), 55555)); serverStream = masterSocket.GetStream(); Package package = new Package(MasterInfo, new BaseInfo(BaseInfoType.Server), MasterInfo); TransportPackage TransportPackage = Serializer.Serialize(package); serverStream.Write(TransportPackage.Data, 0, TransportPackage.Data.Length); serverStream.Flush(); Thread GetThread = new Thread(Get); GetThread.Start(); Thread WriteThread = new Thread(Write); WriteThread.Start(); }
public PlatiniumClient() { clientSocket.Connect(new IPEndPoint(IPAddress.Parse("127.0.0.1"), 55555)); serverStream = clientSocket.GetStream(); Package package = new Package(ClientInfo, new BaseInfo(BaseInfoType.Server), ClientInfo); TransportPackage TransportPackage = Serializer.Serialize(package); serverStream.Write(TransportPackage.Data, 0, TransportPackage.Data.Length); serverStream.Flush(); Thread GetThread = new Thread(Get); GetThread.IsBackground = true; GetThread.Start(); while (true) { } }
public void RegisterService() { var serviceDetails = new WindowsServiceDetails { ServiceAccount = ServiceAccount, ServiceAccountPwd = ServiceAccountPwd, DisplayName = DisplayName, Name = Name, ImagePath = $"\"{Path.Combine(InstallPath, Constants.ServiceControlExe)}\" --serviceName={Name}", ServiceDescription = ServiceDescription }; var dependencies = new List <string>(); if (TransportPackage.Equals("MSMQ", StringComparison.OrdinalIgnoreCase)) { dependencies.Add("MSMQ"); } WindowsServiceController.RegisterNewService(serviceDetails, dependencies.ToArray()); // Service registered so pull out not configured flag files. RemoveFlagFiles(); }
private void Listen() { TcpListener ServerSocket = new TcpListener(IPEndPoint); ServerSocket.Start(); while (true) { TcpClient Socket = ServerSocket.AcceptTcpClient(); TransportPackage TransportPackage = new TransportPackage(); NetworkStream networkStream = Socket.GetStream(); networkStream.Read(TransportPackage.Data, 0, Socket.ReceiveBufferSize); Package package = (Package)Serializer.Deserialize(TransportPackage); BaseInfo Info = (BaseInfo)package.Content; Info.Connector = new Connector(); if (Info.Type == BaseInfoType.Client) { if (!DataStructure.ClientList.Contains(Info)) { DataStructure.ClientList.Add(Info); } } else if (Info.Type == BaseInfoType.Master) { if (!DataStructure.MasterList.Contains(Info)) { DataStructure.MasterList.Add(Info); } } if (!DataStructure.ClientList.Contains(Info) || !DataStructure.MasterList.Contains(Info)) { Dictionary <string, object> ddata = Converter.ClassToDictionary(Info); foreach (var item in ddata) { Console.WriteLine("{0} - {1}", item.Key, item.Value); } Info.Connector.StartConnection(Socket); } } }
public void Validate(Func <PathInfo, bool> promptToProceed) { if (TransportPackage.Equals("MSMQ", StringComparison.OrdinalIgnoreCase)) { try { MsmqConfigValidator.Validate(); } catch (EngineValidationException ex) { ReportCard.Errors.Add(ex.Message); } } try { PortValidator.Validate(this); } catch (EngineValidationException ex) { ReportCard.Errors.Add(ex.Message); } try { DatabaseMaintenancePortValidator.Validate(this); } catch (EngineValidationException ex) { ReportCard.Errors.Add(ex.Message); } try { ReportCard.CancelRequested = new PathsValidator(this).RunValidation(true, promptToProceed); } catch (EngineValidationException ex) { ReportCard.Errors.Add(ex.Message); } try { ServiceControlQueueNameValidator.Validate(this); } catch (EngineValidationException ex) { ReportCard.Errors.Add(ex.Message); } try { CheckForConflictingUrlAclReservations(); } catch (EngineValidationException ex) { ReportCard.Errors.Add(ex.Message); } try { ServiceAccountValidation.Validate(this); ConnectionStringValidator.Validate(this); } catch (IdentityNotMappedException) { ReportCard.Errors.Add("The service account specified does not exist"); } catch (EngineValidationException ex) { ReportCard.Errors.Add(ex.Message); } }