//データを送るメソッド private void SendMessage(StreamWriter writer, string fileName, Byte[] data) { //設計したプロトコルにしたがってファイル名とファイルのデータをエンコードして送信 writer.WriteLine(ProtocolEncoder.ToBase64EncodedData(fileName, data)); //確実にネットワークに流れるようにFlush writer.Flush(); }
//受け取ったメッセージを処理する //メッセージはProtocolEncodedで決められたプロトコルによってやり取りされる private void ProcessMessage(StreamReader reader) { lock (this) { string message = reader.ReadLine(); string fileName = ProtocolEncoder.GetFileNameFromStreamText(message); Byte[] data = ProtocolEncoder.GetDataFromStreamText(message); FileIO.WriteFile(Application.StartupPath + "\\" + fileName, data); this.textBoxReceivedMessage.BeginInvoke(new WriteLineMessageHandler(WriteLineMessage), new object[] { fileName + "を受信しました。" }); } }