Ejemplo n.º 1
0
        void Receiver()
        {
            Thread.CurrentThread.CurrentUICulture = CultureInfo.InvariantCulture;
            try {
                while (true)
                {
                    DSIPack res = new DSIPack(st);
                    if (res.Command == 5) // DSITickle
                    {
                        continue;
                    }
                    ServerDS sv = GetServerDS(res.RequestID);
                    if (sv == null)
                    {
                        continue;
                    }
                    sv.dsiRes = res;
                    sv.evRecv.Set();
                }
            }
            catch (Exception err) {
                if (!evExit.WaitOne(0, false))
                {
                    //Console.Error.WriteLine("# Receiverが故障しました: " + err.Message);
                }

                lock (servs) {
                    foreach (ServerDS serv in servs)
                    {
                        serv.evRecv.Set();
                        serv.err = err;
                    }
                }

                if (Sock.Connected)
                {
                    Sock.Shutdown(SocketShutdown.Both);
                }
            }
        }
Ejemplo n.º 2
0
 public TransmitRes(DSIPack pack)
 {
     this.pack = pack;
     this.br   = new BER(new MemoryStream(pack.Payload, false));
 }