/// <summary> /// /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected override void SendAndReceive(object sender, DoWorkEventArgs e) { int length, length2; byte[] buffer; string fileName; FileStream file; RequestPacket request; ResponsePacket response; RequestPacketBody requestPacketBody; // ローカルファイルを読み取り。 length = (int)new FileInfo(filePath).Length; buffer = new byte[length]; file = new FileStream(filePath, FileMode.Open); length2 = file.Read(buffer, 0, length); file.Close(); if (length2 < length) { throw new Exception("Windowsファイルを正しく読めませんでした。"); } fileName = new FileInfo(filePath).Name; // リクエスト作成。 requestPacketBody = new RequestPacketBody(); requestPacketBody.Add( new StringBinaryBlock( new RemoteFileName(fileName).ToString())); requestPacketBody.Add(new BinaryBlock(buffer)); request = new RequestPacket(RequestCode.SendFile, requestPacketBody); // リクエスト送信とその応答受信。 response = SendAndReceive(request); e.Result = response.body[0].GetAsBool(); }
/// <summary> /// /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected override void SendAndReceive(object sender, DoWorkEventArgs e) { byte[] buffer; RequestPacket request; ResponsePacket response; RequestPacketBody requestPacketBody; // リクエスト作成。 requestPacketBody = new RequestPacketBody(); requestPacketBody.Add(new StringBinaryBlock(fileName)); request = new RequestPacket(RequestCode.ReceiveFile, requestPacketBody); // リクエスト送信とその応答受信。 response = SendAndReceive(request); // ファイル内容取得。 buffer = response.body[0].data; e.Result = buffer; }
/// <summary> /// /// </summary> /// <param name="code"></param> /// <param name="body"></param> public RequestPacket(RequestCode code, RequestPacketBody body) { this.header = new RequestPacketHeader(code, body); this.body = body; }
/// <summary> /// /// </summary> /// <param name="code"></param> public RequestPacket(RequestCode code) { this.header = new RequestPacketHeader(code); this.body = null; }
/// <summary> /// /// </summary> /// <param name="code"></param> /// <param name="body"></param> public RequestPacketHeader(RequestCode code, RequestPacketBody body) : base(code, body.Length) { }