Facebook
From Funky Dolphin, 1 Year ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 137
  1.  
  2. //SERVER
  3. using System;
  4. using System.Net;
  5. using System.Net.Sockets;
  6. using System.Security.Cryptography;
  7. using System.Text;
  8.  
  9.  
  10.  
  11. namespace server
  12. {
  13.     public class Program
  14.     {
  15.         #region Konstante
  16.         const int STD_PORT = 1234; //standardni port na katerem bomo komunicirali
  17.         const string STD_IP = "127.0.0.1";//local host
  18.         const int STD_MSG_SIZE = 1024;//konstanta za velikost paketa (1KB)
  19.         const int STD_HEAD_LEN = 1; //glava pa bo velika en bajt
  20.         const string STD_CRYPTO_KEY = "mojKljuč";//zašifriramo
  21.  
  22.         static bool run = true;// to je za neskončno zanko, če bi jo zelel kasnje eprekiniti
  23.         #endregion
  24.  
  25.         static string Receive(NetworkStream ns)
  26.         {
  27.             try
  28.             {
  29.                 byte[] recv = new byte[STD_MSG_SIZE];
  30.                 int lenght = ns.Read(recv, 0, recv.Length);
  31.                 return Encoding.UTF8.GetString(recv, 0, lenght);
  32.             }
  33.             catch (Exception ex)
  34.             {
  35.                 Console.WriteLine("Napaka pri prejemniku!\n" + ex.Message + "\n" + ex.StackTrace);
  36.                 return null;
  37.             }
  38.         }
  39.  
  40.         static void Send(NetworkStream ns, string message)
  41.         {
  42.             try
  43.             {
  44.                 byte[] send = Encoding.UTF8.GetBytes(message.ToCharArray(), 0, message.Length);
  45.                 ns.Write(send, 0, send.Length);
  46.             }
  47.             catch (Exception ex)
  48.             {
  49.                 Console.WriteLine("Napaka pri pošiljatelju!\n" + ex.Message + "\n" + ex.StackTrace);
  50.             }
  51.         }
  52.  
  53.         public static string Encrypt(string message)
  54.         {
  55.             return null;//samo začasno... tu se morem naret
  56.         }
  57.  
  58.         static void Main(string[] args)
  59.         {
  60.             TcpListener listener = new TcpListener(IPAddress.Parse(STD_IP), STD_PORT);
  61.             listener.Start();
  62.  
  63.             Console.WriteLine("Strežnik\n poslušam na naslovu " + STD_IP + ":" + STD_PORT.ToString());
  64.             while (run)
  65.             {
  66.                 TcpClient temp12 = listener.AcceptTcpClient();//tu sem odstrano using
  67.                 using (NetworkStream ns = temp12.GetStream())
  68.                 {
  69.                     Console.WriteLine("Odjemalec se je povezal (" + temp12.Client.RemoteEndPoint.ToString() + ")");
  70.  
  71.                     string message = Receive(ns);
  72.  
  73.                     Console.WriteLine("Dobil sem sporočilo: " + message);
  74.                     string response = "";
  75.  
  76.                     //protokol se morem napisat
  77.                     string head = message[0].ToString();
  78.                     string body = "";
  79.                     if(message.Length > 1)
  80.                     {
  81.                         body = message.Substring(STD_HEAD_LEN, message.Length - 1);
  82.                     }
  83.  
  84.                     switch (head)
  85.                     {
  86.                             case "A":
  87.                             response = "Pozdravljen " + temp12.Client.RemoteEndPoint.ToString();
  88.                             break;
  89.                             case "B":
  90.                             response ="Trenutni čas je: " + DateTime.Now.ToString("dd. MM. yyyy, H:mm");
  91.                             break;
  92.                             case "C":
  93.                             response = Environment.CurrentDirectory;
  94.                             break;
  95.                             case "D":
  96.                             response = body;
  97.                             //sporocilo ki ga je pravkar prejel
  98.                             break;
  99.                             case "E":
  100.                             response = Environment.MachineName + "\n" + Environment.OSVersion.ToString;
  101.                             break;
  102.                             case "F":
  103.                             response = Environment.MachineName + "\n" + Environment.OSVersion.ToString;
  104.                             break;
  105.  
  106.                     }
  107.  
  108.                     Send(ns, response);
  109.                     Console.WriteLine("Odgovoril sem: " + response);
  110.  
  111.                 }
  112.                 Console.WriteLine("Odjemalec se je odklopil\n");
  113.  
  114.  
  115.             }
  116.             listener.Stop();
  117.             Console.WriteLine("Strežnik se je ustavil");
  118.             Console.ReadKey();
  119.         }
  120.     }
  121. }
  122.  
  123.  
  124. //Console.WriteLine("Hello, World!");
  125.