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); }
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("发送数据失败!"); } }
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); } }
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); }