Serializing object ready to send over TCPClient Stream

后端 未结 5 1242
忘掉有多难
忘掉有多难 2021-01-03 03:05

I\'ve got a server and client set up using TcpListener and TcpClient.

I want to send an object to my server application for processing.

5条回答
  •  伪装坚强ぢ
    2021-01-03 03:30

    Assuming you have a class House (available on both sides of your connection) looking like this:

    [Serializable]
    public class House
    {
        public string Street { get; set; }
        public string ZipCode { get; set; }
        public int Number { get; set; }
        public int Id { get; set; }
        public string Town { get; set; }
    }
    

    You can serialize the class into a MemoryStream. You can then use in your TcpClient connection like this:

    // Create a new house to send house and set values.
    var newHouse = new House
        {
            Street = "Mill Lane", 
            ZipCode = "LO1 BT5", 
            Number = 11, 
            Id = 1, 
            Town = "London"
        };  
    
    var xmlSerializer = new XmlSerializer(typeof(House));
    var networkStream = tcpClient.GetStream();
    if (networkStream.CanWrite)
    {
        xmlSerializer.Serialize(networkStream, newHouse);
    }
    

    Of course you have to do a little more investigation to make the program running without exception. (e.g. Check memoryStream.Length not to be greater than an int, a.s.o.), but I hope I gave you the right suggestions to help you on your way ;-)

提交回复
热议问题