Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.IO;
- using System.Net;
- using System.Net.Sockets;
- using System.Runtime.Serialization.Formatters.Binary;
- using System.Xml.Serialization;
- namespace Receiver
- {
- public class Program
- {
- public static void Main(string[] args)
- {
- Console.WriteLine("Wait to receive a message from HostIP");
- Socket server;
- // Open connection
- server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
- // Wait for someone to connect
- server.Bind(new IPEndPoint(IPAddress.Any, 8080));
- server.Listen(1);
- // Accept the connection
- Socket client = server.Accept();
- byte[] data = new byte[1024];
- client.Receive(data);
- bool initialized = FromByteArray<bool>(data);
- if (initialized)
- {
- client.Send(ToByteArray<bool>(true));
- // Beide Initialisiert
- client.Send(System.Text.Encoding.ASCII.GetBytes("Hello World!"));
- //client.Receive(data);
- using (NetworkStream stream = new NetworkStream(client, false))
- {
- Person neuePerson = GetStreamFromClient<Person>(stream);
- Console.Write(neuePerson.name.ToString());
- Console.Write(neuePerson.age.ToString());
- }
- }
- }
- public static byte[] ToByteArray<T>(T obj)
- {
- if (obj == null)
- return null;
- XmlSerializer bf = new XmlSerializer(typeof(T));
- using (MemoryStream ms = new MemoryStream())
- {
- bf.Serialize(ms, obj);
- return ms.ToArray();
- }
- }
- public static T FromByteArray<T>(byte[] data)
- {
- if (data == null)
- return default(T);
- XmlSerializer bf = new XmlSerializer(typeof(T));
- using (MemoryStream ms = new MemoryStream(data))
- {
- object obj = bf.Deserialize(ms);
- return (T)obj;
- }
- }
- public static T GetStreamFromClient<T>(Stream data)
- {
- try
- {
- if (data == null)
- return default(T);
- XmlSerializer bf = new XmlSerializer(typeof(T));
- object obj = bf.Deserialize(data);
- return (T)obj;
- }
- catch
- {
- throw;
- }
- }
- public static void SendToStream<T>(T obj, Stream data)
- {
- XmlSerializer bf = new XmlSerializer(typeof(T));
- bf.Serialize(data, obj);
- }
- [Serializable]
- public class Person
- {
- public string name { get; set; }
- public int age { get; set; }
- public Person(string name, int age)
- {
- this.name = name;
- this.age = age;
- }
- public Person() { }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement