This looks to be protobuf-net specific. Note that protobuf-net includes SerializeWithLengthPrefix and DeserializeWithLengthPrefix which can be used to simplify working with multiple separate logical messages on a single stream (such as against a socket), without ever over-reading.
Also - it should never error with an EOF unless the socket becomes broken mid-message. More likely, it would simply block waiting on incoming data - or throw a timeout if timeouts are enabled on the underlying stream. Marc On 22 Apr 2014 16:58, "Empi" <[email protected]> wrote: > Hi and thanks for this lovely serializer. > > I'm working on aproject on which local desktop application is "talking" > tcp/ip with local window 8 application (metro) through loopback. > I did of course loopback exemption, and all worked great!!! until... > yesterday I've added an additional String field to the serialized class... > and I get the above error. > If I remove the String it works great again. > > Can you help me solve this mystery? > > The classes I serialize has the following structure (last field is a class > on which the string is added, I removed field's name and left only the > types). > > [ProtoContract] > public class cMessage > { > [ProtoMember(1)] > public uint nPacketNumber { get; set; } > [ProtoMember(2)] > public int nBatteryStatus { get; set; } > [ProtoMember(3)] > public Boolean isCharging { get; set; } > [ProtoMember(4)] > public COMM_STATUS commStatus { get; set; } > [ProtoMember(5)] > public Boolean isDownloading { get; set; } > [ProtoMember(6)] > public COMM_ERRORS commErrorCode { get; set; } // > [ProtoMember(10)] > public cGeneralInfo cInfo; > } > > [ProtoContract] > public class cGeneralInfo > { > [ProtoMember(100)] > public DateTime dtLastPacket; > [ProtoMember(101)] > public uint unBatteryStatus; > [ProtoMember(102)] > public uint unChargingStatus; > [ProtoMember(103)] > public double dSoftwareVersion; > [ProtoMember(104)] > public String sInfo1 > [ProtoMember(105)] > public uint > [ProtoMember(106)] > public uint > [ProtoMember(107)] > public uint > [ProtoMember(108)] > public uint > [ProtoMember(109)] > public uint > [ProtoMember(110)] > public uint > [ProtoMember(111)] > public double > [ProtoMember(112)] > public int > [ProtoMember(113)] > public int > [ProtoMember(114)] > public int > [ProtoMember(115)] > public int > [ProtoMember(116)] > public int > [ProtoMember(117)] > public int > [ProtoMember(118)] > public int > [ProtoMember(119)] > public int > [ProtoMember(120)] > public int > [ProtoMember(121)] > public int > [ProtoMember(122)] > public int > [ProtoMember(123)] > public int > [ProtoMember(124)] > public int > [ProtoMember(125)] > public int > [ProtoMember(126)] > public string > [ProtoMember(127)] > public int > [ProtoMember(128)] > public String //// This is the filed started causing > the error. > } > > > Thanks!!!. > > > Empi > > > > -- > You received this message because you are subscribed to the Google Groups > "Protocol Buffers" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > Visit this group at http://groups.google.com/group/protobuf. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "Protocol Buffers" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/protobuf. For more options, visit https://groups.google.com/d/optout.
