Ejemplo n.º 1
0
        /// <summary>
        /// 启动服务
        /// </summary>
        /// <param name="inSendDataDelegate">发送数据委托</param>
        /// <param name="packet">包数据</param>
        public void StartServer(Action <FilePacket> inSendDataDelegate, FileNr.FileDirectoryCalledPacket packet)
        {
            try
            {
                initData();
                callPacket = packet;
                readFileDicrectoryPacket = new FileReadPacket(0, 0, BasicElement.CauseOfTransmissionList.Activation, 0, packet);

                mReadThread          = new Thread(FilePackeReciveThread);
                mReadThread.Priority = ThreadPriority.Normal;
                mReadThread.Name     = "ServerThread线程数据";
                mReadThread.Start();

                mServerThread          = new Thread(ServeThread);
                mServerThread.Priority = ThreadPriority.Normal;
                mServerThread.Name     = "ServerThread线程";
                mServerThread.Start();
                serverState = true;
                SendPacket  = inSendDataDelegate;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 启动服务
        /// </summary>
        /// <param name="inSendDataDelegate">发送数据委托</param>
        /// <param name="packet">包数据</param>
        /// <param name="attribute">文件属性</param>
        public void StartServer(Action <FilePacket> inSendDataDelegate, FileReadPacket packet, FileNr.FileAttribute attribute)
        {
            initData();
            packetManager          = new FilePacketManager(attribute);
            readFileAcitivtyPacket = packet;


            mReadThread          = new Thread(FilePackeReciveThread);
            mReadThread.Priority = ThreadPriority.Normal;
            mReadThread.Name     = "FilePackeReciveThread线程数据";
            mReadThread.Start();

            mServerThread          = new Thread(ServeThread);
            mServerThread.Priority = ThreadPriority.Normal;
            mServerThread.Name     = "FileServerThread线程";
            mServerThread.Start();
            serverState = true;
            SendPacket  = inSendDataDelegate;
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 时间内完成调用
        /// </summary>
        /// <returns>true--结束本次传输</returns>
        private bool AckOnTime()
        {
            bool state = true;

            if (ackPacket.ResultSign == FileNr.FileResultSign.Success)
            {
                fileAttributeList.AddRange(ackPacket.FileAttributeList);
                if (ackPacket.Fllow == FileNr.FllowingFlag.Nothing)
                {
                    if (CallFileEndEvent != null)
                    {
                        CallFileEndEvent(this, new CallFileEndEventArgs("召唤目录传输完成", fileAttributeList));
                    }
                    state = false;
                }
                else
                {
                    //readFileDicrectoryPacket = new FileReadPacket(0,0, BasicElement.CauseOfTransmissionList.ActivationACK,)
                    readFileDicrectoryPacket = null;
                    state = true;
                }
            }
            else
            {
                state = true;
            }


            if (CallFileDirectoryEvent != null)
            {
                var e = new FileServerEventArgs <FileNr.FileDirectoryCalledAckPacket>("从机应答:" + ackPacket.ResultSign.ToString(), FileNr.OperatSign.ReadDirectoryACK,
                                                                                      readFileDicrectoryAckPacket, ackPacket);
                CallFileDirectoryEvent(Thread.CurrentThread, e);
            }


            return(state);
        }