private static void sendPositionAllCLients(object object1) { NetworkStream ServerNS = (NetworkStream)object1; while (true) { byte[] BufferLocal = new byte[1024]; int BytesRebuts = 0; string bytesAsString = null; //Rebem les dades del client i les imprimim do { BytesRebuts = ServerNS.Read(BufferLocal, 0, BufferLocal.Length); bytesAsString = Encoding.UTF8.GetString(BufferLocal, 0, BytesRebuts); } while (ServerNS.DataAvailable); try { Player playerSend = SerializatePlayer.Deserialization(bytesAsString); if (dictPlayers[playerSend.id].position.PosX != playerSend.position.PosX || dictPlayers[playerSend.id].position.PosY != playerSend.position.PosY) { setDictionary(playerSend); //Console.WriteLine(listPlayers[playerSend.id].position.PosX); //Console.WriteLine(listPlayers[playerSend.id].position.PosY); broadcastPlayers(playerSend, BytesRebuts, BufferLocal); } } catch (Exception e) { Console.WriteLine(bytesAsString); } } }
private static void queryPlayersPlaying(Player player) { foreach (Player playerSel in dictPlayers.Values) { if (!playerSel.id.Equals(dictPlayers[player.id].id)) { var stringPlayer = SerializatePlayer.Serializate(playerSel); byte[] playerSerialized = Encoding.UTF8.GetBytes(stringPlayer); dictPlayers[player.id].networkStream.Write(playerSerialized, 0, stringPlayer.Length); } } }
private static void generateIDPlayer(NetworkStream ServerNS) { Player playerN = newPlayer(ServerNS); var playerString = SerializatePlayer.Serializate(playerN); byte[] playerBytes = Encoding.UTF8.GetBytes(playerString); Thread broadcastPlayers = new Thread(() => firstBroadcastClients(playerN, playerString.Length, playerBytes)); broadcastPlayers.Start(); //broadcastPlayers(playerN, playerString.Length, playerBytes); ServerNS.Write(playerBytes, 0, playerString.Length); }