Esempio n. 1
0
		public async Task ProcessPacketsAsync(Packet[] packet, ClientInfo info){
			foreach(Packet p in packet){
				switch(p.PacketType){
					case 0:
						var strea = Encoding.ASCII.GetString(p.data);
						Console.WriteLine(strea);
						log.Add(strea);
						int c = clients.IndexOf(info);
						BroadcastData(Packet.ToBytes(new Packet(-3,-1,Encoding.ASCII.GetBytes(strea),0)),(x)=>clients.IndexOf(x)!=c);
						break;
					case 2:
						BroadcastData(Packet.ToBytes(new Packet(-3,-1,Encoding.ASCII.GetBytes(info.Name+" has disconnected"),0)));
						log.Add(info.Name+" has disconnected");
						Console.WriteLine(info.Name+" has disconnected");
						info.Client.Close();
						clients.Remove(info);
						break;
					default:
						Console.WriteLine("Unrecognized Packet Recieved");
						break;
				}
			}
		}
Esempio n. 2
0
		public static Packet ToPacket(ClientInfo client){
			Packet pack = new Packet(-1,-2,null,5);
			byte[] name = Encoding.ASCII.GetBytes(client.Name);
			pack.data=name;
			return pack;
		}
Esempio n. 3
0
		public Client(string name){

			client= new TcpClient();
			clientinfo = new ClientInfo(client,name);
		}
Esempio n. 4
0
 public void Disconnect(ClientInfo clientinfo)
 {
     BroadcastData(Packet.ToBytes(new Packet(-3, -1, Encoding.ASCII.GetBytes(clientinfo.Name + " has disconnected"), 0)));
     log.Add(clientinfo.Name + " has disconnected");
     Console.WriteLine(clientinfo.Name + " has disconnected");
     clientinfo.Client.Client.Close();
     clients.Remove(clientinfo);
 }