SendPacket() public method

패킷을 전송합니다.
public SendPacket ( StreamBuffer buffer, Action onSent = null ) : void
buffer StreamBuffer 전송할 데이터가 담긴 StreamBuffer
onSent Action 패킷 전송이 완료된 후 호출할 Action
return void
Beispiel #1
0
        public virtual async Task <Packet> SendAndWaitResponse(Packet packet, UInt16 responsePacketId)
        {
            TaskCompletionSource <Packet> tcs = new TaskCompletionSource <Packet>();
            TCSData data = new TCSData()
            {
                packetId = responsePacketId, tcs = tcs, predicate = null
            };
            Packet response = null;


            lock (_listTCS)
            {
                _listTCS.Add(data);
            }


            await Task.Run(() =>
            {
                try
                {
                    _session.SendPacket(packet);
                    response = tcs.Task.Result;
                }
                catch (Exception)
                {
                    //  Nothing to do.
                }
            });

            return(response);
        }