Beispiel #1
0
        public void EnqueueRequest(byte[] data, ServerHost.ProcessClientResponseDelegateHandler callback)
        {
            var request = new Request()
            {
                RequestData = data,
                Callback    = callback
            };

            lock (requests_queue_lock)
            {
                requests_queue.Add(request);
            }


            var request_bytes = request.RequestIdentifier
                                .ToByteArray()
                                .Concat(data)
                                .ToArray();

            lock (requests_queue_lock)
            {
                tcp_client.GetStream().Write(request_bytes, 0, request_bytes.Length);
            }
        }
Beispiel #2
0
 /// <summary>
 /// Hace una solicitud al cliente indicado y ejecuta el callback pasado como parámetro al ser respondida.
 /// </summary>
 /// <param name="request"></param>
 /// <param name="callback"></param>
 public static void RequestToClient(Guid client_id, byte[] request, ServerHost.ProcessClientResponseDelegateHandler callback)
 {
     ServerHost.Current.Hosts.TryGetValue(client_id, out HostClient client);
     client.EnqueueRequest(request, callback);
 }