コード例 #1
0
 public void Send(Encapsulation_Packet SendPkt)
 {
     try
     {
         Tcpclient.Client.Send(SendPkt.toByteArray());
     }
     catch
     {
         Trace.WriteLine("Error in TcpClient Send");
         Tcpclient = null;
     }
 }
コード例 #2
0
        public int SendReceive(Encapsulation_Packet SendPkt, out Encapsulation_Packet ReceivePkt, out int Offset, ref byte[] packet)
        {
            ReceivePkt = null;
            Offset     = 0;

            int Lenght = 0;

            try
            {
                // We are not working on a continous flow but with query/response datagram
                // So if something is here it's a previous lost (timeout) response packet
                // Flush all content.
                while (Tcpclient.Available != 0)
                {
                    Tcpclient.Client.Receive(packet);
                }

                Tcpclient.Client.Send(SendPkt.toByteArray());
                Lenght = Tcpclient.Client.Receive(packet);
                if (Lenght > 24)
                {
                    ReceivePkt = new Encapsulation_Packet(packet, ref Offset, Lenght);
                }
                if (Lenght == 0)
                {
                    Trace.WriteLine("Reception timeout with " + Tcpclient.Client.RemoteEndPoint.ToString());
                }
            }
            catch
            {
                Trace.WriteLine("Error in TcpClient Send Receive");
                Tcpclient = null;
            }

            return(Lenght);
        }
コード例 #3
0
 public void Send(Encapsulation_Packet Packet, IPEndPoint ep)
 {
     byte[] b = Packet.toByteArray();
     m_exclusive_conn.Send(b, b.Length, ep);
 }