HelloPacket.cs
[Serializable, ProtoContract(Name = @"HelloPacket")]
public class HelloPacket
{
[ProtoMember(1)]
public string name = "Hello";
public string Name
{
get => name;
set => name = value;
}
}
using (MemoryStream memoryStream = new MemoryStream())
{
memoryStream.Position = 0L;
HelloPacket packet = new HelloPacket();
Serializer.SerializeWithLengthPrefix(memoryStream, packet, PrefixStyle.Fixed32);
long position = memoryStream.Position;
}
PrefixStyle.Fixed32
, 前面四个字节是包的长度。