//send message to every user static private void Broadcast(Message message) { foreach (TcpClient client in users.Keys) { TCPHelper.SendMessage(message, client); } }
public Worker(ILogger <Worker> logger, TCPHelper helper, IConfiguration configuration) { _logger = logger; _helper = helper; _configuration = configuration; config = ApplicationConfig.Instance; }
/// <summary> /// Starts an endless while-loop, where the tcp client listens for new messages from the endpoint /// </summary> /// <returns></returns> public IEnumerator ListenForMessages() { while (!isDisconnecting) { if (Connected) { if (networkStream.DataAvailable) { ChatDataPackage msg = JsonUtility.FromJson <ChatDataPackage>(TCPHelper.ReadMessage(networkStream)); foreach (var item in msg.ChatDataPackages) { item.SenderClient = this; clientName = item.PlayerName; lock (ChatServer.tickMessages) { ChatServer.tickMessages.ChatDataPackages.Add(item); } } //Debug.Log(msg); } yield return(null); } else { isDisconnecting = true; DisconnectClient(); } } }
public void SendWhisper(string whisperName, ChatServerClient client) { if (tickMessages.ChatDataPackages.Count > 0) { //DEBUG if (chatGUI != null) { foreach (var item in tickMessages.ChatDataPackages) { chatGUI.chatHistorie.Add(item.PlayerName + " : " + item.port + " : " + item.Message + " : to: " + item.Target); } } byte[] mes = TCPHelper.MessageBytes(tickMessages); //skal finde playeren man whisper for (int i = 0; i < Clients.Count; i++) { if (Clients[i].clientName == whisperName) { Clients[i].SendToClient(mes); client.SendToClient(mes); } } } }
private static void PackageTick(object sender, ElapsedEventArgs e) { lock (Server.ChangedCells) { List <PositionDataPackage> positionData = PositionData(); for (int i = 0; i < Players.Count; i++) { List <GridDataPackage> gridData = GridData(Players[i].PlayerID); byte[] package = PackageToByte(new DataCollectionPackage() { PositionDataPackages = positionData, GridDataPackages = gridData }); if (TCPHelper.Connected(Players[i].Client.tcpClient)) { Players[i].Client.SendToClient(package); } else { disconnectedClients.Add(Players[i].Client); } } ChangedCells.Clear(); } foreach (var item in disconnectedClients) { Disconnect(item); } disconnectedClients.Clear(); }
public void SendToGoupe(string groupName) { if (tickMessages.ChatDataPackages.Count > 0) { //DEBUG if (chatGUI != null) { foreach (var item in tickMessages.ChatDataPackages) { chatGUI.chatHistorie.Add(item.Target + " : " + item.port + " : " + item.Message); } } byte[] mes = TCPHelper.MessageBytes(tickMessages); //skal finde gruppen for (int i = 0; i < groups.Count; i++) { if (groups[i].GroupName == groupName) { for (int y = 0; y < groups[i].Members.Count; y++) { groups[i].Members[y].SendToClient(mes); } } } } }
// connection private void handleClientConnection(object obj) { TcpClient client = obj as TcpClient; this.stream = new SslStream(client.GetStream(), false); try { this.stream.AuthenticateAsServer(this.server.certificate, false, SslProtocols.Tls, true); SSLHelper.DisplaySecurityLevel(this.stream); SSLHelper.DisplaySecurityServices(this.stream); SSLHelper.DisplayCertificateInformation(this.stream); SSLHelper.DisplayStreamProperties(this.stream); this.stream.ReadTimeout = Config.connectionTimeout; this.stream.WriteTimeout = Config.connectionTimeout; while (true) { this.server.receiveRequest(this, TCPHelper.read(this.stream)); Thread.Sleep(10); } } catch (Exception e) { ExceptionHelper.print(e); } finally { this.stream.Close(); client.Close(); } }
/// <summary> /// Allows the game to perform any initialization it needs to before starting to run. /// This is where it can query for any required services and load any non-graphic /// related content. Calling base.Initialize will enumerate through any components /// and initialize them as well. /// </summary> protected override void Initialize() { SetupControler(); TCPHelper.Initialize(__DEBUG_PORT, "127.0.0.1", "Joueur 1 lol mdr"); m_graphics.GraphicsDevice.PresentationParameters.RenderTargetUsage = RenderTargetUsage.PreserveContents; base.Initialize(); }
// connection public void startConnection() { TcpClient client = new TcpClient(Config.host, Config.port); this.stream = new SslStream(client.GetStream(), false, new RemoteCertificateValidationCallback(validateCertificate), null); try { this.stream.AuthenticateAsClient(Config.machineName); TCPHelper.write(this.stream, Request.newRequest()); } catch (Exception e) { Console.WriteLine("Couldn't authenticate: {0}", e.StackTrace); if (e.InnerException != null) { Console.WriteLine("Inner exception: {0}", e.InnerException.Message); } client.Close(); return; } this.thread = new Thread(new ThreadStart(readRequest)); this.thread.Start(); }
private bool TryEnableStats() { try { // Ignoring bandwidth measurement for loopbacks as it is meaningless anyway if (this.TargetIP == "127.0.0.1" || this.TargetIP == "::1") { return(false); } if (this.rawConnection is MIB_TCPROW_OWNER_MODULE) { rawrow = ((MIB_TCPROW_OWNER_MODULE)this.rawConnection).ToTCPRow(); TCPHelper.EnsureStatsAreEnabled((TCPHelper.MIB_TCPROW)rawrow); } else if (this.rawConnection is MIB_TCP6ROW_OWNER_MODULE) { rawrow = ((MIB_TCP6ROW_OWNER_MODULE)this.rawConnection).ToTCPRow(); TCP6Helper.EnsureStatsAreEnabled((TCP6Helper.MIB_TCP6ROW)rawrow); } statsEnabled = true; } catch { InboundBandwidth = 0; OutboundBandwidth = 0; IsAccessDenied = true; } return(false); }
public IEnumerator ListenToServer() { Debug.Log("ListenToServer Started"); while (true) { if (client.GetStream().DataAvailable) { string packetString = TCPHelper.ReadMessage(client.GetStream()); ChatDataPackage packet = JsonUtility.FromJson <ChatDataPackage>(packetString); foreach (var item in packet.ChatDataPackages) { // dele op i grupper her string senderClient = item.PlayerName; string msg = senderClient + ": " + item.Message; // check for at ændre farve chatSystem.SendMessageToChat(msg, item.typeColor); msg = ""; } } yield return(null); } }
public void Message(string msg) { // chatTarget = GetTargetString(msg); if (GetTargetString(msg)) { msg = MessageCleaner(msg); ChatDataPackage cdp = new ChatDataPackage(); cdp.ChatDataPackages.Add(new ChatData { // SenderName = "Tais", SenderName = ((IPEndPoint)client.Client.LocalEndPoint).Address.ToString(), Message = msg, port = ((IPEndPoint)client.Client.LocalEndPoint).Port.ToString(), Target = chatTarget, PlayerName = clientName, typeColor = msColor }); byte[] data = TCPHelper.MessageBytes(cdp); client.GetStream().Write(data, 0, data.Length); Debug.Log("Sent: " + msg); } }
public ServerUser(TcpClient tcpClient) { Helper = new TCPHelper(); Helper.tcpClient = tcpClient; Helper.DataHandler += DataHelpers.Handle4Server; Helper.Ready(); Task.Run(() => Helper.ReceiveData()); }
public UserOnServer(TcpClient tcpClient) { helper = new TCPHelper(); helper.tcpClient = tcpClient; helper.DataHandler += CC.DataHandle.Handle; helper.Ready(); Task.Run(() => helper.ReceiveData()); }
private void btnCheck_Click(object sender, RoutedEventArgs e) { string Ip = txtIP.Text.Trim(); int port = Convert.ToInt32(txtPort.Text.Trim()); helper = new TCPHelper(IPAddress.Parse(Ip), port); MessageBox.Show("设置成功!"); }
public void SendTokenToServer() { byte[] tokenData = TCPHelper.MessageBytes(token); TcpClient client = new TcpClient(Globals.MIDDLEWARE_IP, Globals.TOKENSYSTEM_PORT); client.GetStream().Write(tokenData, 0, tokenData.Length); string validateRequest = ((int)MessageType.Validate).ToString() + Server.MESSAGE_TYPE_INDICATOR + token; Message(validateRequest); }
/// <summary> /// 发送消息到客户端 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Btn_sentToClient_Click(object sender, EventArgs e) { TcpClient client = (TcpClient)cb_client.SelectedValue; string msg = ""; bool result = TCPHelper.SendToClient(client, tb_data.Text, out msg); if (!result) { ShowMessage(msg); } }
public EventTimeBarForm() { InitializeComponent(); // 载入网页 var htmlPathWithPort = TCPHelper.fillPortInHtml(Const.htmlPath + @"EventTimeBar\", "index.html"); this.webKitBrowser1.Navigate(htmlPathWithPort); TCPHelper.responceFuncDict.Add("/eventTimeBar/getTopicList", getTopicList); TCPHelper.responceFuncDict.Add("/eventTimeBar/getEventsByTopic", getEventsByTopic); TCPHelper.responceFuncDict.Add("/eventTimeBar/saveNeo", saveNeo); }
public static void Disconnect(ServerClient disconnectedClient) { //Session manager - UNTESTED try { UserSession ses = new UserSession() { UserID = disconnectedClient.clientName, InGame = false, Request = SessionRequest.SetStatus }; byte[] data = TCPHelper.MessageBytes(ses); Server.SessionClient.GetStream().Write(data, 0, data.Length); } catch { } ServerActor disconnectedActor = null; foreach (ServerActor actor in Players) { if (actor.Client == disconnectedClient) { disconnectedActor = actor; SendDisconnectNotification(disconnectedActor.PlayerID); } } if (disconnectedActor != null) { //Gem spillerens state List <PlayerDataModel> saveStates = new List <PlayerDataModel>(); saveStates.Add(new PlayerDataModel() { PlayerDataRequest = PlayerDataRequest.Update, Online = false, PositionX = disconnectedActor.startingX, PositionY = disconnectedActor.startingY, UserID = disconnectedActor.Client.clientName, ResponseExpected = false }); byte[] data = TCPHelper.MessageBytesNewton(saveStates); databaseClient.GetStream().Write(data, 0, data.Length); //Fjern fra spillet MapGrid.grid[disconnectedActor.startingX, disconnectedActor.startingY].GetComponent <Cell>().UnoccupyCell(); ChangedCells.Add(Server.MapGrid.grid[disconnectedActor.startingX, disconnectedActor.startingY].GetComponent <Cell>(), 0); Players.Remove(disconnectedActor); GameObject.Destroy(disconnectedActor.gameObject); Clients.Remove(disconnectedClient); } }
public EventCountryForm() { InitializeComponent(); // 载入网页 var listHtmlPathWithPort = TCPHelper.fillPortInHtml(Const.htmlPath + @"WorldMap\", "textList.html"); this.listWebkitBrowser.Navigate(listHtmlPathWithPort); var mapHtmlPathWithPort = TCPHelper.fillPortInHtml(Const.htmlPath + @"WorldMap\", "worldMap.html"); this.mapWebkitBrowser.Navigate(mapHtmlPathWithPort); TCPHelper.responceFuncDict.Add("/eventCountry/changeCountry", changeCountry); TCPHelper.responceFuncDict.Add("/eventCountry/getEventsByCountry", getEventsByCountry); }
/// <summary> /// Retourne la position du héros. /// </summary> public Vector2 GetMyPosition() { System.IO.MemoryStream s = new System.IO.MemoryStream(); System.IO.StreamWriter output = new System.IO.StreamWriter(s, BOMLESS_UTF8); output.NewLine = "\n"; output.WriteLine(((int)22).ToString()); output.Close(); TCPHelper.Send(s.ToArray()); byte[] response = TCPHelper.Receive(); s = new System.IO.MemoryStream(response); System.IO.StreamReader input = new System.IO.StreamReader(s, BOMLESS_UTF8); Vector2 returnValue = Vector2.Deserialize(input); return((Vector2)returnValue); }
private void btnStart_Click(object sender, RoutedEventArgs e) { btnStart.IsEnabled = false; btnStop.IsEnabled = true; string ip = this.cbbIP.SelectedValue.ToString(); //MessageBox.Show(ip+":"+txtPort.Text+"已开始监听"); int p = int.Parse(txtPort.Text); helper = new TCPHelper(IPAddress.Parse(ip), p); helper.ExHandler += ShowMsg; helper.StartListen(p); ShowMsg(null, string.Format("{0}:{1}-->监听已开始", helper.IP, helper.port)); helper.AddTcpClientHandler += CreateClientTask; Task.Run(() => helper.ListenClient()); }
/// <summary> /// Obtient toutes les données du jeu qui ne vont pas varier lors de son déroulement. A appeler une /// fois en PickPhase (pour récup les sorts) et une fois en GamePhase (pour récup les données de la /// map) /// </summary> public GameStaticDataView GetStaticData() { System.IO.MemoryStream s = new System.IO.MemoryStream(); System.IO.StreamWriter output = new System.IO.StreamWriter(s, BOMLESS_UTF8); output.NewLine = "\n"; output.WriteLine(((int)0).ToString()); output.Close(); TCPHelper.Send(s.ToArray()); byte[] response = TCPHelper.Receive(); s = new System.IO.MemoryStream(response); System.IO.StreamReader input = new System.IO.StreamReader(s, BOMLESS_UTF8); GameStaticDataView returnValue = GameStaticDataView.Deserialize(input); return((GameStaticDataView)returnValue); }
/// <summary> /// Lors de la phase de picks, retourne l'action actuellement attendue de la part de ce héros. /// </summary> public PickAction Picks_NextAction() { System.IO.MemoryStream s = new System.IO.MemoryStream(); System.IO.StreamWriter output = new System.IO.StreamWriter(s, BOMLESS_UTF8); output.NewLine = "\n"; output.WriteLine(((int)1).ToString()); output.Close(); TCPHelper.Send(s.ToArray()); byte[] response = TCPHelper.Receive(); s = new System.IO.MemoryStream(response); System.IO.StreamReader input = new System.IO.StreamReader(s, BOMLESS_UTF8); PickAction returnValue = (PickAction)Int32.Parse(input.ReadLine()); return((PickAction)returnValue); }
/// <summary> /// Obtient la phase actuelle du jeu : Pick (=> phase de picks) ou Game (phase de jeu). /// </summary> public SceneMode GetMode() { System.IO.MemoryStream s = new System.IO.MemoryStream(); System.IO.StreamWriter output = new System.IO.StreamWriter(s, BOMLESS_UTF8); output.NewLine = "\n"; output.WriteLine(((int)41).ToString()); output.Close(); TCPHelper.Send(s.ToArray()); byte[] response = TCPHelper.Receive(); s = new System.IO.MemoryStream(response); System.IO.StreamReader input = new System.IO.StreamReader(s, BOMLESS_UTF8); SceneMode returnValue = (SceneMode)Int32.Parse(input.ReadLine()); return((SceneMode)returnValue); }
/// <summary> /// Effectue une upgrade du spell passif du héros. /// </summary> public SpellUpgradeResult UpgradeMyPassiveSpell() { System.IO.MemoryStream s = new System.IO.MemoryStream(); System.IO.StreamWriter output = new System.IO.StreamWriter(s, BOMLESS_UTF8); output.NewLine = "\n"; output.WriteLine(((int)38).ToString()); output.Close(); TCPHelper.Send(s.ToArray()); byte[] response = TCPHelper.Receive(); s = new System.IO.MemoryStream(response); System.IO.StreamReader input = new System.IO.StreamReader(s, BOMLESS_UTF8); SpellUpgradeResult returnValue = (SpellUpgradeResult)Int32.Parse(input.ReadLine()); return((SpellUpgradeResult)returnValue); }
/// <summary> /// Obtient l'attack range de l'arme du héros au niveau actuel. /// </summary> public float GetMyAttackRange() { System.IO.MemoryStream s = new System.IO.MemoryStream(); System.IO.StreamWriter output = new System.IO.StreamWriter(s, BOMLESS_UTF8); output.NewLine = "\n"; output.WriteLine(((int)31).ToString()); output.Close(); TCPHelper.Send(s.ToArray()); byte[] response = TCPHelper.Receive(); s = new System.IO.MemoryStream(response); System.IO.StreamReader input = new System.IO.StreamReader(s, BOMLESS_UTF8); float returnValue = Single.Parse(input.ReadLine()); return((float)returnValue); }
/// <summary> /// Arrête le déplacement automatique (A*) du joueur. /// </summary> public bool EndMoveTo() { System.IO.MemoryStream s = new System.IO.MemoryStream(); System.IO.StreamWriter output = new System.IO.StreamWriter(s, BOMLESS_UTF8); output.NewLine = "\n"; output.WriteLine(((int)25).ToString()); output.Close(); TCPHelper.Send(s.ToArray()); byte[] response = TCPHelper.Receive(); s = new System.IO.MemoryStream(response); System.IO.StreamReader input = new System.IO.StreamReader(s, BOMLESS_UTF8); bool returnValue = Int32.Parse(input.ReadLine()) == 0 ? false : true; return((bool)returnValue); }
/// <summary> /// Obtient l'id du modèle d'enchantement d'arme équipé par le héros. (-1 si aucun) /// </summary> public int GetMyWeaponEnchantId() { System.IO.MemoryStream s = new System.IO.MemoryStream(); System.IO.StreamWriter output = new System.IO.StreamWriter(s, BOMLESS_UTF8); output.NewLine = "\n"; output.WriteLine(((int)20).ToString()); output.Close(); TCPHelper.Send(s.ToArray()); byte[] response = TCPHelper.Receive(); s = new System.IO.MemoryStream(response); System.IO.StreamReader input = new System.IO.StreamReader(s, BOMLESS_UTF8); int returnValue = Int32.Parse(input.ReadLine()); return((int)returnValue); }
/// <summary> /// Retourne une vue vers le héros contrôlé par ce contrôleur. /// </summary> public EntityBaseView GetMyHero() { System.IO.MemoryStream s = new System.IO.MemoryStream(); System.IO.StreamWriter output = new System.IO.StreamWriter(s, BOMLESS_UTF8); output.NewLine = "\n"; output.WriteLine(((int)21).ToString()); output.Close(); TCPHelper.Send(s.ToArray()); byte[] response = TCPHelper.Receive(); s = new System.IO.MemoryStream(response); System.IO.StreamReader input = new System.IO.StreamReader(s, BOMLESS_UTF8); EntityBaseView returnValue = EntityBaseView.Deserialize(input); return((EntityBaseView)returnValue); }