IPEndPoint objEndpoint; //krijimi i objkti i Endpoint(pika e fundit) public KlientiRi(Socket serverSocket) { this.serverSocket = serverSocket; this.objEndpoint = (IPEndPoint)serverSocket.RemoteEndPoint; //Marrja e ip dhe portit Thread cThread = new Thread(Komunikimi); //krijon nje thread te ri per komunikim if (!ListaMeKlient.Contains(objEndpoint.Address.ToString())) { ListaMeKlient.Add(objEndpoint.Address.ToString()); //shtimi ne liste te klientit } cThread.Start(); //nis threadin per ate klient }
public void Komunikimi() { Console.ForegroundColor = ConsoleColor.White; Console.WriteLine("Serveri u lidh me klientin {0} me nr: {1} ne portin {2}", objEndpoint.Address, (ListaMeKlient.IndexOf(objEndpoint.Address.ToString()) + 1).ToString(), objEndpoint.Port); //info rreth klientit try { byte[] eDhenaPranuese = new byte[128]; //byte array nga serveri int gjatsia = serverSocket.Receive(eDhenaPranuese); //Leximi i gjatesise mesazhit nga klienti permes serversocket string TeDhenat = Encoding.ASCII.GetString(eDhenaPranuese, 0, gjatsia); //ruajtja e rezultatit te kthyer nga serveri ne stringun 'TeDhenat' string pergjigjja = ""; //string ku do te ruajme te dhenat TeDhenat = TeDhenat.Trim(); if (TeDhenat.ToLower() == "ip") { pergjigjja = objMetoda.IP(objEndpoint);//dergon tek IP metoda } else if (TeDhenat.ToLower() == "port") { pergjigjja = objMetoda.PORT(objEndpoint);//dergon tek Port metoda } else if (TeDhenat.ToLower() == "time") { pergjigjja = objMetoda.TIME();//dergon tek Time metoda } else if (TeDhenat.ToLower() == "host") { pergjigjja = objMetoda.HOST();//dergon tek Host metoda } else if (TeDhenat.ToLower().IndexOf("zanore") == 0) { pergjigjja = objMetoda.ZANORE(TeDhenat.ToLower());//dergon tek TeDhenat metoda } else if (TeDhenat.ToLower().IndexOf("printo") == 0) { pergjigjja = objMetoda.PRINTO(TeDhenat.ToLower());//dergon tek Printo metoda } else if (TeDhenat.ToLower().IndexOf("konverto") == 0) { pergjigjja = objMetoda.KONVERTO(TeDhenat.ToLower());//dergon tek Konverto metoda } else if (TeDhenat.ToLower() == "keno") { pergjigjja = objMetoda.KENO();//dergon tek Keno metoda } else if (TeDhenat.ToLower().IndexOf("faktoriel") == 0) { pergjigjja = objMetoda.FAKTORIEL(TeDhenat.ToLower());//dergon tek Faktoriel metoda } else { pergjigjja = "Kerkesa eshte e padefinuar mire!\n";//nese deshton } byte[] PergjigjaeKthyer = new byte[128]; //bajt array me 128max per ruatje te pergjigjes PergjigjaeKthyer = Encoding.ASCII.GetBytes(pergjigjja); //pergjigjen duhet ta kthejm ne bajta serverSocket.SendTo(PergjigjaeKthyer, objEndpoint); //dhe pastaj ja dergojm serverit Console.ForegroundColor = ConsoleColor.Yellow; Console.WriteLine("Klienti: " + TeDhenat); //shtypet kerkesa e klientit Console.ForegroundColor = ConsoleColor.White; Console.WriteLine("Serveri: " + pergjigjja); //shtypet pergjigja e serverit(te gjitha shtypen ne klient) } catch (Exception Error) //per te dhene gabimet, do shfaqet mesazhi { Console.WriteLine("Gabim: " + Error); } }