//SERVER using System; using System.Net; using System.Net.Sockets; using System.Security.Cryptography; using System.Text; namespace server { public class Program { #region Konstante const int STD_PORT = 1234; //standardni port na katerem bomo komunicirali const string STD_IP = "127.0.0.1";//local host const int STD_MSG_SIZE = 1024;//konstanta za velikost paketa (1KB) const int STD_HEAD_LEN = 1; //glava pa bo velika en bajt const string STD_CRYPTO_KEY = "mojKljuč";//zašifriramo static bool run = true;// to je za neskončno zanko, če bi jo zelel kasnje eprekiniti #endregion static string Receive(NetworkStream ns) { try { byte[] recv = new byte[STD_MSG_SIZE]; int lenght = ns.Read(recv, 0, recv.Length); return Encoding.UTF8.GetString(recv, 0, lenght); } catch (Exception ex) { Console.WriteLine("Napaka pri prejemniku!\n" + ex.Message + "\n" + ex.StackTrace); return null; } } static void Send(NetworkStream ns, string message) { try { byte[] send = Encoding.UTF8.GetBytes(message.ToCharArray(), 0, message.Length); ns.Write(send, 0, send.Length); } catch (Exception ex) { Console.WriteLine("Napaka pri pošiljatelju!\n" + ex.Message + "\n" + ex.StackTrace); } } public static string Encrypt(string message) { return null;//samo začasno... tu se morem naret } static void Main(string[] args) { TcpListener listener = new TcpListener(IPAddress.Parse(STD_IP), STD_PORT); listener.Start(); Console.WriteLine("Strežnik\n poslušam na naslovu " + STD_IP + ":" + STD_PORT.ToString()); while (run) { TcpClient temp12 = listener.AcceptTcpClient();//tu sem odstrano using using (NetworkStream ns = temp12.GetStream()) { Console.WriteLine("Odjemalec se je povezal (" + temp12.Client.RemoteEndPoint.ToString() + ")"); string message = Receive(ns); Console.WriteLine("Dobil sem sporočilo: " + message); string response = ""; //protokol se morem napisat string head = message[0].ToString(); string body = ""; if(message.Length > 1) { body = message.Substring(STD_HEAD_LEN, message.Length - 1); } switch (head) { case "A": response = "Pozdravljen " + temp12.Client.RemoteEndPoint.ToString(); break; case "B": response ="Trenutni čas je: " + DateTime.Now.ToString("dd. MM. yyyy, H:mm"); break; case "C": response = Environment.CurrentDirectory; break; case "D": response = body; //sporocilo ki ga je pravkar prejel break; case "E": response = Environment.MachineName + "\n" + Environment.OSVersion.ToString; break; case "F": response = Environment.MachineName + "\n" + Environment.OSVersion.ToString; break; } Send(ns, response); Console.WriteLine("Odgovoril sem: " + response); } Console.WriteLine("Odjemalec se je odklopil\n"); } listener.Stop(); Console.WriteLine("Strežnik se je ustavil"); Console.ReadKey(); } } } //Console.WriteLine("Hello, World!");