コード例 #1
0
        //public void receiveCallBack(IAsyncResult ar)
        //{
        //    try
        //    {
        //        int rec = socket.EndReceive(ar);

        //        if (rec == 0)
        //        {
        //            if (Disconnected != null)
        //            {
        //                Disconnected(this);
        //                return;
        //            }
        //        }

        //        if (rec != 4)
        //        {
        //            throw new Exception();
        //        }
        //    }
        //    catch(SocketException se)
        //    {
        //        switch(se.SocketErrorCode)
        //        {
        //            case SocketError.ConnectionAborted:
        //            case SocketError.ConnectionReset:
        //                if (Disconnected != null)
        //                {
        //                    Disconnected(this);
        //                    return;
        //                }
        //                break;
        //        }
        //    }
        //    catch(ObjectDisposedException)
        //    {
        //        return;
        //    }
        //    catch(NullReferenceException)
        //    {
        //        return;
        //    }
        //    catch (Exception ex)
        //    {
        //        Console.WriteLine(ex.Message);
        //        return;
        //    }

        //    buffer = new ReceiveBuffer(BitConverter.ToInt32(lenBuffer, 0));

        //    socket.BeginReceive(buffer.Buffer, 0, buffer.Buffer.Length, SocketFlags.None, receivePacketCallBack, null);
        //}

        //public void receivePacketCallBack(IAsyncResult ar)
        //{
        //    int rec = socket.EndReceive(ar);

        //    if (rec <= 0)
        //    {
        //        return;
        //    }

        //    buffer.BufStream.Write(buffer.Buffer, 0, rec);

        //    buffer.ToReceive -= rec;

        //    if (buffer.ToReceive > 0)
        //    {
        //        Array.Clear(buffer.Buffer, 0, buffer.Buffer.Length);

        //        socket.BeginReceive(buffer.Buffer, 0, buffer.Buffer.Length, SocketFlags.None, receivePacketCallBack, null);
        //        return;
        //    }

        //    if (DataReceived != null)
        //    {
        //        buffer.BufStream.Position = 0;
        //        DataReceived(this, buffer);
        //    }

        //    buffer.Dispose();

        //    ReceiveAsync();
        //}

        void Send(byte[] data, int index, int length)
        {
            UpdateLogMsg("send data: " + BBDataConverter.ByteToHexString(data));
            //socket.BeginSend(BitConverter.GetBytes(length), 0, 4, SocketFlags.None, sendCallBack, null);
            //System.Threading.Thread.Sleep(500);
            socket.BeginSend(data, index, length, SocketFlags.None, sendCallBack, null);
        }
コード例 #2
0
ファイル: DataPacket.cs プロジェクト: gaonsoflt/isps
            public override string ToString()
            {
                StringBuilder pktStr = new StringBuilder("Packet: ");

                pktStr.Append("TYPE[").Append(type).Append("]");
                pktStr.Append("USER_ID[").Append(userId).Append("]");
                pktStr.Append("CAR_ID[").Append(carId).Append("]");
                pktStr.Append("RESPONSE[").Append(response).Append("]");
                pktStr.Append("DATA_LEN[").Append(dataLen).Append("]");
                if (response == PKT_NACK)
                {
                    pktStr.Append("ERROR_MSG[").Append(errMsg).Append("]");
                }
                if (dataLen > 10 && data != null)
                {
                    pktStr.Append("DATA[").Append(BBDataConverter.ByteToHexString(data.Take(10).ToArray())).Append("...]");
                }
                return(pktStr.ToString());
            }