public void SendRequest(DhtAddress address, UInt64 targetID, uint searchID, uint service, uint datatype, byte[] parameters) { SearchReq request = new SearchReq(); request.Source = Network.GetLocalSource(); request.SearchID = searchID; request.TargetID = targetID; request.Service = service; request.DataType = datatype; request.Parameters = parameters; int sentBytes = 0; TcpConnect direct = Network.TcpControl.GetProxy(address); if (direct != null) { sentBytes = direct.SendPacket(request); } else { sentBytes = Network.SendPacket(address, request); } Core.ServiceBandwidth[request.Service].OutPerSec += sentBytes; }
public void Send_ProxySearchRequest() { SearchReq request = new SearchReq(); request.Source = Network.GetLocalSource(); request.SearchID = SearchID; request.TargetID = TargetID; request.Service = Service; request.DataType = DataType; request.Parameters = Parameters; ProxyTcp.SendPacket(request); }
public void Send_StoreReq(DhtAddress address, DhtClient localProxy, DataReq publish) { if (address == null) { return; } StoreReq store = new StoreReq(); store.Source = Network.GetLocalSource(); store.Key = publish.Target; store.Service = publish.Service; store.DataType = publish.DataType; store.Data = publish.Data; int sentBytes = 0; TcpConnect direct = Network.TcpControl.GetProxy(address); if (direct != null) { sentBytes = direct.SendPacket(store); } else if (address.TunnelClient != null) { sentBytes = Network.SendTunnelPacket(address, store); } // if blocked send tcp with to tag else if (Core.Firewall == FirewallType.Blocked) { store.ToAddress = address; TcpConnect proxy = Network.TcpControl.GetProxy(localProxy); if (proxy != null) { sentBytes = proxy.SendPacket(store); } else { sentBytes = Network.TcpControl.SendRandomProxy(store); } } else { sentBytes = Network.UdpControl.SendTo(address, store); } Core.ServiceBandwidth[store.Service].OutPerSec += sentBytes; }