Advertisement
Guest User

Untitled

a guest
Apr 24th, 2022
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.13 KB | None | 0 0
  1. using System;
  2. using System.IO;
  3. using System.Net;
  4. using System.Net.Sockets;
  5. using System.Runtime.Serialization.Formatters.Binary;
  6. using System.Xml.Serialization;
  7.  
  8. namespace Receiver
  9. {
  10.     public class Program
  11.     {
  12.         public static void Main(string[] args)
  13.         {
  14.  
  15.             Console.WriteLine("Wait to receive a message from HostIP");
  16.             Socket server;
  17.  
  18.             // Open connection
  19.             server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
  20.  
  21.             // Wait for someone to connect
  22.             server.Bind(new IPEndPoint(IPAddress.Any, 8080));
  23.             server.Listen(1);
  24.             // Accept the connection
  25.             Socket client = server.Accept();
  26.             byte[] data = new byte[1024];
  27.             client.Receive(data);
  28.             bool initialized = FromByteArray<bool>(data);
  29.             if (initialized)
  30.             {
  31.                 client.Send(ToByteArray<bool>(true));
  32.                 // Beide Initialisiert
  33.                 client.Send(System.Text.Encoding.ASCII.GetBytes("Hello World!"));
  34.                 //client.Receive(data);
  35.                 using (NetworkStream stream = new NetworkStream(client, false))
  36.                 {
  37.                     Person neuePerson = GetStreamFromClient<Person>(stream);
  38.                     Console.Write(neuePerson.name.ToString());
  39.                     Console.Write(neuePerson.age.ToString());
  40.                 }
  41.             }
  42.         }
  43.         public static byte[] ToByteArray<T>(T obj)
  44.         {
  45.             if (obj == null)
  46.                 return null;
  47.             XmlSerializer bf = new XmlSerializer(typeof(T));
  48.             using (MemoryStream ms = new MemoryStream())
  49.             {
  50.                 bf.Serialize(ms, obj);
  51.                 return ms.ToArray();
  52.             }
  53.         }
  54.         public static T FromByteArray<T>(byte[] data)
  55.         {
  56.             if (data == null)
  57.                 return default(T);
  58.             XmlSerializer bf = new XmlSerializer(typeof(T));
  59.             using (MemoryStream ms = new MemoryStream(data))
  60.             {
  61.                 object obj = bf.Deserialize(ms);
  62.                 return (T)obj;
  63.             }
  64.         }
  65.         public static T GetStreamFromClient<T>(Stream data)
  66.         {
  67.             try
  68.             {
  69.                 if (data == null)
  70.                     return default(T);
  71.                 XmlSerializer bf = new XmlSerializer(typeof(T));
  72.                 object obj = bf.Deserialize(data);
  73.                 return (T)obj;
  74.             }
  75.             catch
  76.             {
  77.                 throw;
  78.             }
  79.         }
  80.         public static void SendToStream<T>(T obj, Stream data)
  81.         {
  82.             XmlSerializer bf = new XmlSerializer(typeof(T));
  83.             bf.Serialize(data, obj);
  84.         }
  85.  
  86.         [Serializable]
  87.         public class Person
  88.         {
  89.             public string name { get; set; }
  90.             public int age { get; set; }
  91.             public Person(string name, int age)
  92.             {
  93.                 this.name = name;
  94.                 this.age = age;
  95.             }
  96.             public Person() { }
  97.         }
  98.     }
  99. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement