Пример #1
0
        private void SocketError(string msg)
        {
            this.guid_ = "";
            if (this.client_ != null)
            {
                this.client_.Shutdown(SocketShutdown.Both);
                this.client_.Close();
                this.client_ = null;
            }

            TcpServer.GetInstance().ShowMessage("出错! " + msg, false);
        }
Пример #2
0
        public void SendPacket(byte[] buffer, int len)
        {
            if (this.client_ == null)
            {
                TcpServer.GetInstance().ShowMessage("客户端未接入!");
                return;
            }

            if (this.client_.Send(buffer, len, SocketFlags.None) != len)
            {
                this.SocketError("发送数据失败!");
            }
        }
Пример #3
0
        private void RecvFileEndAnswer()
        {
            int len = this.client_.RecvPacket();

            this.client_.CopyPacket(this.recvBuffer_, len);

            int   index    = 0;
            short cmdLen   = Tools.GetShort(recvBuffer_, ref index);
            short cmdValue = Tools.GetShort(recvBuffer_, ref index);
            short status   = Tools.GetShort(recvBuffer_, ref index);

            if (status == 0)
            {
                //表示发送成功
                TcpServer.GetInstance().ShowMessage("发送一个文件: " + this.current_.path + " 完成.");
            }
            else
            {
                TcpServer.GetInstance().ShowMessage("发送一个文件: " + this.current_.path
                                                    + " 失败: error code " + status);
            }
        }
Пример #4
0
        private bool RecvFileStartAnswer()
        {
            int len = this.client_.RecvPacket();

            this.client_.CopyPacket(this.recvBuffer_, len);

            int   index     = 0;
            short cmdLen    = Tools.GetShort(recvBuffer_, ref index);
            short cmdValue  = Tools.GetShort(recvBuffer_, ref index);
            short status    = Tools.GetShort(recvBuffer_, ref index);
            long  existSize = Tools.GetLong(recvBuffer_, ref index);

            if (status != 0)
            {
                //说明失败
                TcpServer.GetInstance().ShowMessage("下载文件 "
                                                    + this.current_.path + " 失败: " + Tools.Hex2String(recvBuffer_, len));
                return(false);
            }

            if (existSize == this.current_.size)
            {
                //说明该文件已存在下位机
            }

            try
            {
                this.filestream_.Seek(existSize, SeekOrigin.Begin);
            }
            catch (System.Exception)
            {
                return(false);
            }

            return(true);
        }