/// <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; } }
/// <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; }
/// <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); }