public byte[] Serialise(ProxyContact.IProxy proxy) { MemoryStream m = new MemoryStream(); Serializer.Serialize<UdpProxy>(m, (UdpProxy)proxy); return m.ToArray(); }
public ProxyContact.IProxy Deserialise(byte[] data, ProxyContact contact) { var d = Serializer.Deserialize<UdpProxy>(new MemoryStream(data)); proxies[d.EndPoint] = new KeyValuePair<ProxyContact, UdpProxy>(contact, d); return d; }
public Callback.WaitToken SendPing(ProxyContact source, UdpProxy destination, bool synchronous=true) { var t = callback.AllocateToken(); MemoryStream m = new MemoryStream(); Serializer.SerializeWithLengthPrefix<ProxyContact>(m, source, PrefixStyle.Base128); m.WriteByte(0); BinaryWriter writer = new BinaryWriter(m); writer.Write(t.Id); Send(m.ToArray(), destination.EndPoint, synchronous); return t; }