private static void Events_DataReceived(object sender, DataReceivedEventArgs e) { Console.WriteLine($"Dane od clienta: {e.IpPort} -> {Encoding.UTF8.GetString(e.Data)}"); switch (Encoding.UTF8.GetString(e.Data).Split(':')[0]) { case Messages.Client.Host: matches.Add(new Match(e.IpPort)); Console.WriteLine($"Gracz: {e.IpPort} stworzył nową gre"); break; case Messages.Client.Join: matches[0].playerBlack = e.IpPort; server.Send(matches[0].playerWhite, Messages.Server.Start + ":WHITE"); server.Send(matches[0].playerBlack, Messages.Server.Start + ":BLACK"); break; case Messages.Client.Move: if (e.IpPort == matches[0].playerWhite) { server.Send(matches[0].playerBlack, Encoding.UTF8.GetString(e.Data)); } else { server.Send(matches[0].playerWhite, Encoding.UTF8.GetString(e.Data)); } break; default: break; } }
private void btnSend_Click(object sender, EventArgs e) { if (server.IsListening) { if (!string.IsNullOrEmpty(txtMessage.Text) && lstClientIP.SelectedItem != null) { server.Send(lstClientIP.SelectedItem.ToString(), txtMessage.Text); txtInfo.Text += $"Server: {txtMessage.Text}{Environment.NewLine}"; txtMessage.Text = string.Empty; } } }
//private void CreateThumbnail(string imageFile) //{ // string dir = new FileInfo(imageFile).DirectoryName; // string thmFilePath = Path.Combine(dir, "thumbnail.jpeg"); // System.Drawing.Image image = System.Drawing.Image.FromFile(imageFile); // var thumbImage = image.GetThumbnailImage(64, 64, new Image.GetThumbnailImageAbort(() => false), IntPtr.Zero); // thumbImage.Save(thmFilePath, System.Drawing.Imaging.ImageFormat.Jpeg); //} private void btnPlay_Click(object sender, EventArgs e) { if (server.IsListening) { var allItems = lstClientIP.Items.OfType <String>().ToList(); foreach (var items in allItems) { server.Send(items.ToString(), "play"); } } axWindowsMediaPlayer1.URL = "C:/Users/Windows 10/Downloads/wetransfer-d9d477/Aki Fire Dragon.mp4"; axWindowsMediaPlayer1.Ctlcontrols.play(); }
private void Events_DataReceived(object sender, DataReceivedEventArgs e) { this.Invoke((MethodInvoker) delegate { txtInfo.Text += $"{e.IpPort}: {Encoding.UTF8.GetString(e.Data)}{Environment.NewLine}"; if (Encoding.UTF8.GetString(e.Data) == "-serverinfo") { server.Send(e.IpPort, (Environment.NewLine + "Name: " + Environment.MachineName + Environment.NewLine + "OS: " + Environment.OSVersion + Environment.NewLine + "Processors: " + Environment.ProcessorCount + Environment.NewLine )); } }); }
static void DumpFrame( RenderFrame frame, string captureFolder, SimpleTcpServer tcpServer, int quality, bool losslessPNG) { // dump the left. RenderTexture.active = frame.RenderTargetLeft; frame.ResolveTexture.ReadPixels(new Rect(0, 0, frame.RenderTargetLeft.width, frame.RenderTargetLeft.height), 0, 0); // dump the right. RenderTexture.active = frame.RenderTargetRight; frame.ResolveTexture.ReadPixels(new Rect(0, 0, frame.RenderTargetRight.width, frame.RenderTargetRight.height), 0, frame.RenderTargetLeft.height); RenderTexture.active = null; frame.ResolveTexture.Apply(); if (tcpServer != null && tcpServer.Capturing) { var pixels32 = frame.ResolveTexture.GetRawTextureData(); tcpServer.Send(frame.FrameCount, frame.ResolveTexture.width, frame.ResolveTexture.height, pixels32); } else if (!string.IsNullOrEmpty(captureFolder)) { // write to file. var fileName = string.Format("frame_{0}.{1}", frame.FrameCount.ToString("D5"), losslessPNG ? "png" : "jpg"); File.WriteAllBytes( Path.Combine(captureFolder, fileName), losslessPNG ? frame.ResolveTexture.EncodeToPNG() : frame.ResolveTexture.EncodeToJPG(quality)); } }
private void Events_DataReceived(object sender, DataReceivedEventArgs e) { string msg = string.Empty; this.Invoke((MethodInvoker) delegate { msg = $"{e.IpPort} : {Encoding.UTF8.GetString(e.Data)}"; NLogger.Instance.Debug(msg); InputMessage(msg); }); if (Encoding.UTF8.GetString(e.Data) == @"READ?") { if (server.IsListening) { count++; msg = String.Format(@"Server Send Data - {0}", count); server.Send(e.IpPort, msg); this.Invoke((MethodInvoker) delegate { msg = String.Format(@"Recieved Server Data - {0}", count); NLogger.Instance.Debug(msg); InputMessage(msg); }); } } }
private void Events_DataReceived(object sender, DataReceivedEventArgs e) { // Dados recebidos pelo servidor, ele replica para todos os clientes this.Invoke((MethodInvoker) delegate { string message = Encoding.UTF8.GetString(e.Data); txtInfo.Text += $"{e.IpPort} {GetFormattedTimestamp()}: {message}{Environment.NewLine}"; foreach (var item in lstClientIP.Items) { if (item.ToString() != e.IpPort) { server.Send(item.ToString(), $"{e.IpPort}¨{message}"); } } }); }
public void Send(LoraPacket packet) { foreach (var client in _tcpClients) { _logger.LogInformation("Sending Uplink to client {@client}", client); string json = JsonConvert.SerializeObject(packet); _server.Send(client, json); } }
static void Send() { string ipPort = InputString("Client IP:port:", _LastClientIpPort, true); if (!String.IsNullOrEmpty(ipPort)) { string data = InputString("Data:", "Hello!", true); if (!String.IsNullOrEmpty(data)) { _Server.Send(ipPort, Encoding.UTF8.GetBytes(data)); } } }
public static void ClientConnected(object sender, ClientConnectedEventArgs e) { //Console.WriteLine("[" + e.IpPort + "] client connected"); Application.Current.Dispatcher.Invoke((Action) delegate { connectPremission window1 = new connectPremission(e.IpPort); int res = window1.showWindow().Result; if (res == 1) { server.Send(e.IpPort, "p$1"); reff.isEstablished = true; ip = e.IpPort; } else if (res == 2) { server.Send(e.IpPort, "p$2"); server.DisconnectClient(e.IpPort); } }); }
private void btnSave_Click(object sender, EventArgs e) { if (server.IsListening) { if (lstClientIP.SelectedItem != null) // Lógica para selecionar algum ip da listbox. { StreamWriter arquivoTxt = new StreamWriter("c:\\temp\\nomes_de_categoria1.txt"); // Cria o arquivo .txt na pasta 'temp' dentro do disco local 'C'. arquivoTxt.WriteLine("Nomes de categoria 1:\n" + lista); txtInfo.Text += $"(Slave) Arquivo foi salvo em: ' C:\\temp\\nomes_de_categoria1.txt ' {Environment.NewLine}"; server.Send(lstClientIP.SelectedItem.ToString(), $"(Master) O arquivo foi criado com sucesso pelo servidor! {Environment.NewLine}"); // Comunicar-se com cliete. arquivoTxt.Close(); } } }
// sending to current IP address: current port number public void sendMessage(string IP_Port, string message) { if (!string.IsNullOrEmpty(message)) { if (server != null) { server.Send(IP_Port, message); } else { client.Send(message); } } }
public void send <T>(string port, MessageBase message) where T : MessageBase { using (var outputStream = new MemoryStream()) { using (var bw = new BinaryWriter(outputStream)) { byte[] data = JsonSerializer.SerializeToUtf8Bytes((T)message, sOption); outputStream.Capacity = data.Length + 4; bw.Write(data.Length); bw.Write(data); outputStream.Position = 0; server.Send(port, outputStream.Length, outputStream); ServerLogger.Instance.writeLog($"{outputStream.Length} bytes sent to {port}."); } } }
private void btnSend_Click(object sender, EventArgs e) { string insertQuery = "INSERT INTO member_tb2(IP,Message) VALUES('" + txtIP.Text + "'," + txtMessage.Text + ")"; //member_tb2테이블에 IP,Message값을 INSERT한다. connection.Open(); MySqlCommand command = new MySqlCommand(insertQuery, connection); try //예외 처리 { if (command.ExecuteNonQuery() == 1) //Mysql에 정상적으로 들어갔다면 메세지를 보여줘라 { MessageBox.Show("정상적으로 갔다"); } else { MessageBox.Show("비정상 이당"); } } catch (Exception ex) { MessageBox.Show(ex.Message); } connection.Close(); if (server.IsListening) //서버연결수신 { if (!string.IsNullOrEmpty(txtMessage.Text) && lstClientIP.SelectedItem != null) //메시지 확인 및 목록 상자에서 클라이언트 IP 선택 { server.Send(lstClientIP.SelectedItem.ToString(), txtMessage.Text); txtInfo.Text += $"Server: {txtMessage.Text}{Environment.NewLine}"; txtMessage.Text = string.Empty; string hexString = "8E2"; int num = Int32.Parse(hexString, System.Globalization.NumberStyles.HexNumber); Console.WriteLine(num); //supersimpletcp 라이브러리 참조 } } }
/// <summary> /// Send any server-to-client info using SuperSimpleTcp's nifty implementation. /// </summary> /// <param name="msg">The message to send.</param> public void Send(string msg) { server.Send(ipPort, msg); }
private void Events_DataReceived(object sender, DataReceivedEventArgs e) { this.Invoke((MethodInvoker) delegate // délègue l'action au thread principal { string schaine = Encoding.UTF8.GetString(e.Data); //on récupère la donnée provenant du client if (server.IsListening) // si le serveur écoute { if (schaine == "speed") // si le client demande la vitesse { server.Send(client, "speed: " + mcommande.svitesse); // envoie de la vitesse txtInfo.Text += $"Server:{mcommande.svitesse}{Environment.NewLine}"; } else if (schaine == "voltage") // si le client demande la tension { server.Send(client, "voltage: " + mcommande.sTension); // // envoie de la tension txtInfo.Text += $"Server:{mcommande.sTension}{Environment.NewLine}"; } else if (schaine == "current") // si le client demande le courant { server.Send(client, "current: " + mcommande.scourant); // envoie du courant txtInfo.Text += $"Server:{mcommande.scourant}{Environment.NewLine}"; } else if (schaine.Substring(0, 1) == "M") { txtInfo.Text += $"{e.IpPort} :{schaine}{Environment.NewLine}"; //sinon ca veut dire que le client écrit juste un message, on l'affiche donc } else // si il y a qq chose à envoyer { iPlaceT = schaine.LastIndexOf("T"); //on cherche la place de S et T dans la chaîne de caractère iPlaceS = schaine.LastIndexOf("S"); sT = schaine.Substring(iPlaceT + 1); // grâce à S et T on sait où sont les valeurs sS = schaine.Substring(iPlaceS + 1, iPlaceT - iPlaceS - 1); if (schaine.Substring(0, 1) == "s") //si le 1er caractère est s(statique)=>mode statique { mapp.checkDynamique.Checked = false; mapp.checkstatique.Checked = true; // ensuite utilisés dans Commande() mapp.Kp = 0.05; // coefficients déjà calculés mapp.Ki = 0.01; mapp.Kd = 0.001; } if (schaine.Substring(0, 1) == "d") // si il reçoit "dynamique": le client veut être en mode dynamique { mapp.checkstatique.Checked = false; // ensuite utilisés dans Commande() mapp.checkDynamique.Checked = true; mapp.Kp = 52929; // coefficients déjà calculés mapp.Kd = 130421; mapp.Ki = 176429; } mapp.bchoix = false; // pour dans App mapp.Reset(); // le client fait une demande=> on reset le graphe et les valeurs précèdentes mapp.Graphique(); // on re-appelle le grpahique mapp.lblconsigne.Text = sS; //on affiche la consigne et la charge mapp.lblcharge.Text = sT; mapp.timer10.Start(); //on re-appelle les timer mapp.timerMoteur.Start(); } } }); }
private void Events_DataReceived(object sender, DataReceivedEventArgs e) { string[] message = Encoding.UTF8.GetString(e.Data).Split('|'); //Console.WriteLine(message.ToArray()); //Console.WriteLine(message[3]); //if (!this.Dispatcher.CheckAccess()) return; //This is null for some reason..... if (message[0].Equals("file")) { if (message[1].Equals("multicast")) { Console.WriteLine("MULTICAST"); int number = int.Parse(message[4]); StringBuilder stringBuilder = new StringBuilder(); stringBuilder.Clear(); for (int i = 5; i < number + 5; i++) { User user = findUser(message[i]); if (i == 5) { stringBuilder.Append(" " + message[i]); } else { stringBuilder.Append(", " + message[i]); } server.Send(user.ipPort, $"file|multicast|{message[2]}|{message[3]}|{message[number + 5]}"); } txtInfo.Dispatcher.Invoke((Action) delegate { txtInfo.Text += $"{message[3]} sent a file to{stringBuilder}.{Environment.NewLine}"; }); } else if (message[1].Equals("broadcast")) { Console.WriteLine("BROADCAST"); foreach (User user in listOfUsers) { if (user.username.Equals(message[3])) { continue; } server.Send(user.ipPort, $"file|broadcast|{message[2]}|{message[3]}|{message[4]}"); } txtInfo.Dispatcher.Invoke((Action) delegate { txtInfo.Text += $"{message[3]} sent a file to Everyone.{Environment.NewLine}"; }); //Send <"broadcast">|<message[1]>|message[2] to all users in listOfUsers //If users.Equals(message[1]) then continue to next user. We shoudn't send to the sender. } /*//Just forward the message to all connected users except for message[1] * //Just checking length * byte[] checkLength = Encoding.ASCII.GetBytes($"file|{message[1]}|{message[2]}|"); //These are the bytes we want to erase from the start of e.Data * //Make a new byte array with help of checkLenght * foreach (User user in listOfUsers) * { * if (user.username.Equals(message[2])) continue; * * //byte[] newData = e.Data.Skip(checkLength.Length).ToArray(); //We can do this * //Send to all users //OR we skip the first checkLength.Length bytes before continuing. * byte[] theMessage = Encoding.ASCII.GetBytes($"file|{message[1]}|{user.username}|{Encoding.UTF8.GetString(e.Data.Skip(checkLength.Length).ToArray())}"); * //Console.WriteLine(Encoding.UTF8.GetString(theMessage)); * server.Send(user.ipPort, theMessage); * } * * txtInfo.Dispatcher.Invoke((Action)delegate * { * txtInfo.Text += $"{message[2]} sent a file to EVERYONE!!{Environment.NewLine}"; * }); */ } else if (message[0].Equals("disconnected")) { User usr = findUser(message[1]); if (usr.Equals(null)) { return; //User not in the list. } listOfUsers.Remove(usr); lstClientIP.Dispatcher.Invoke((Action) delegate() { lstClientIP.Items.Remove(message[1]); foreach (User user in listOfUsers) { server.Send(user.ipPort, $"disconnected|{message[1]}"); } }); txtInfo.Dispatcher.Invoke((Action) delegate { txtInfo.Text += $"{message[1]} disconnected.{Environment.NewLine}"; }); //Remove user from listOfUsers == message[1] //Remove lstClient.Item == message[1] //and then Send <"disconnected">|<message[1]> to all that is in lstClient.Items } else if (message[0].Equals("connected")) { User user = new User(); user.ipPort = e.IpPort; user.username = message[1]; listOfUsers.Add(user); StringBuilder stringBuilder = new StringBuilder(); stringBuilder.Clear(); foreach (User user1 in listOfUsers) { if (user1.username.Equals(message[1])) { continue; } stringBuilder.Append($"|{user1.username}"); server.Send(user1.ipPort, $"connected|{message[1]}"); } server.Send(user.ipPort, $"listofconnections|{message[1]}|{user.ipPort}|{listOfUsers.Count - 1}{stringBuilder}"); lstClientIP.Dispatcher.Invoke((Action) delegate { lstClientIP.Items.Add(message[1]); }); txtInfo.Dispatcher.Invoke((Action) delegate { txtInfo.Text += $"{message[1]} connected.{Environment.NewLine}"; }); //lstClientIP += $"{messag[something] connected //Instantiate a new user and add it into the list, User user = new User(), listOfUsers.Add(user) //Send <"connected">|message[1] to all that is in lstClient.Items //Gather lstClient.Items into a List, add all username into a stringbuilder with delim | //Send <"listofconnections">|<message[1]>|<e.IpPort>|<lstClient.Items.Count>|<StrinbBuilder with clients> } else if (message[0].Equals("multicast")) { int number = int.Parse(message[2]); StringBuilder stringBuilder = new StringBuilder(); stringBuilder.Clear(); for (int i = 3; i < number + 3; i++) { User user = findUser(message[i]); if (i == 3) { stringBuilder.Append(" " + message[i]); } else { stringBuilder.Append(", " + message[i]); } //If user == null? //Maybe number + 3? We'll see. server.Send(user.ipPort, $"multicast|{message[1]}|{message[number + 3]}"); } txtInfo.Dispatcher.Invoke((Action) delegate { txtInfo.Text += $"{message[1]} sent a message to{stringBuilder}.{Environment.NewLine}"; }); //For all users in between (message[3] til (message[message[2] + 1]) //Send <"multicast">|<username>|<message[[2] + 2]> } else if (message[0].Equals("broadcast")) { foreach (User user in listOfUsers) { if (user.username.Equals(message[1])) { continue; } server.Send(user.ipPort, $"broadcast|{message[1]}|{message[2]}"); } txtInfo.Dispatcher.Invoke((Action) delegate { txtInfo.Text += $"{message[1]} sent a message to everyone.{Environment.NewLine}"; }); //Send <"broadcast">|<message[1]>|message[2] to all users in listOfUsers //If users.Equals(message[1]) then continue to next user. We shoudn't send to the sender. } }
public static void SendAsJson <T>(this SimpleTcpServer server, string ipPort, T obj) => server.Send(ipPort, Utf8Json.JsonSerializer.Serialize(obj));
private static void Events_DataReceived(object sender, DataReceivedEventArgs e) { Console.WriteLine($"Dane od clienta: {e.IpPort} -> {Encoding.UTF8.GetString(e.Data)}"); String[] messageData = Encoding.UTF8.GetString(e.Data).Split(':'); switch (messageData[0]) { case Messages.Client.Host: matches.Add(new Match(connectedClients.Find(x => x.ip == e.IpPort))); Console.WriteLine($"Gracz: {e.IpPort} stworzył nową gre"); SendMatchesToAll(); break; case Messages.Client.Join: string hostAdress = messageData[1]; foreach (Match match in matches) { if (match.playerWhite.name.Equals(hostAdress) && match.playerBlack == null) { match.playerBlack = new Player(e.IpPort, connectedClients.Find(x => x.ip == e.IpPort).name); server.Send(match.playerWhite.ip, Messages.Server.Start + ":WHITE"); server.Send(match.playerBlack.ip, Messages.Server.Start + ":BLACK"); Console.WriteLine("Mecz wystartował"); SendMatchesToAll(); break; } } break; case Messages.Client.Move: Match ourMatch = matches.Find(x => x.playerBlack.ip == e.IpPort); if (ourMatch == null) { ourMatch = matches.Find(x => x.playerWhite.ip == e.IpPort); } if (e.IpPort == ourMatch.playerWhite.ip) { server.Send(ourMatch.playerBlack.ip, Encoding.UTF8.GetString(e.Data)); } else { server.Send(ourMatch.playerWhite.ip, Encoding.UTF8.GetString(e.Data)); } break; case Messages.Server.Matches: Console.WriteLine(listOfMatches()); server.Send(e.IpPort, listOfMatches()); break; case Messages.Client.Cancel: matches.RemoveAll(x => x.playerWhite.ip == e.IpPort); SendMatchesToAll(); break; case Messages.Client.Login: if (!db.userLogin(messageData[1], messageData[2])) { server.Send(e.IpPort, Messages.Server.Disconnect); break; } if (connectedClients.Exists(x => x.name == messageData[1])) { server.Send(e.IpPort, Messages.Server.Logged); } connectedClients.Add(new Player(e.IpPort, messageData[1])); server.Send(e.IpPort, $"{Messages.Server.User}:{db.gameCount(messageData[1])}"); break; case Messages.Client.Register: addUser(Encoding.UTF8.GetString(e.Data)); server.Send(e.IpPort, Messages.Server.Registered); break; case Messages.Client.EndGame: // endgame message + playercolor Match thisMatch = matches.Find(x => x.playerWhite.ip == e.IpPort); if (thisMatch == null) { thisMatch = matches.Find(x => x.playerBlack.ip == e.IpPort); } Player thisPlayerWhite = connectedClients.Find(x => x.ip == thisMatch.playerWhite.ip); Player thisPlayerBlack = connectedClients.Find(x => x.ip == thisMatch.playerBlack.ip); if (messageData[1] == "BLACK") { server.Send(e.IpPort, Messages.Server.Winner + ":" + thisPlayerWhite.name + ":" + thisPlayerBlack.name + ":" + thisPlayerBlack.name); server.Send(thisMatch.playerWhite.ip, Messages.Server.Lost + ":" + thisPlayerBlack.name); } else { server.Send(e.IpPort, Messages.Server.Winner + ":" + thisPlayerWhite.name + ":" + thisPlayerBlack.name + ":" + thisPlayerWhite.name); // do kogo, imie wygranego server.Send(thisMatch.playerBlack.ip, Messages.Server.Lost + ":" + thisPlayerWhite.name); } break; case Messages.Client.SaveGame: Player thisPlayer1 = connectedClients.Find(x => x.name == messageData[1]); Player thisPlayer2 = connectedClients.Find(x => x.name == messageData[2]); Player thisPlayer3 = connectedClients.Find(x => x.name == messageData[3]); addGame(thisPlayer1.name + ":" + thisPlayer2.name + ":" + thisPlayer3.name); break; case Messages.Client.Surrender: Match surrenderMatch = matches.Find(x => x.playerWhite.ip == e.IpPort); if (surrenderMatch == null) { surrenderMatch = matches.Find(x => x.playerBlack.ip == e.IpPort); } Console.WriteLine($"{surrenderMatch.playerBlack.ip}:{surrenderMatch.playerWhite.ip}"); if (e.IpPort.Equals(surrenderMatch.playerBlack.ip)) { server.Send(surrenderMatch.playerBlack.ip, $"{Messages.Server.Winner}:{surrenderMatch.playerBlack.name}:" + $"{surrenderMatch.playerWhite.name}:{surrenderMatch.playerBlack.name}"); server.Send(surrenderMatch.playerWhite.ip, $"{Messages.Server.Lost}:{surrenderMatch.playerBlack.name}"); } else { server.Send(surrenderMatch.playerWhite.ip, $"{Messages.Server.Winner}:{surrenderMatch.playerWhite.name}" + $":{surrenderMatch.playerBlack.name}:{surrenderMatch.playerWhite.name}"); server.Send(surrenderMatch.playerBlack.ip, $"{Messages.Server.Lost}:{surrenderMatch.playerWhite.name}"); } break; default: break; } }