Windows Phone 用の単純な TCP クライアント アプリケーションを開発しようとしています。
サーバー側では、接続を受け入れてファイルを保存する単純な C# サーバー アプリケーションを使用しています。
MSDN で例を見ました (クライアント アプリの場合、http://msdn.microsoft.com/en-us/library/windowsphone/develop/hh202858(v=vs.105).aspx )。しかし、それは文字列のみを送信し、クライアントから画像にファイル (画像) を送信したいと考えています。
これは、クライアントから送信されたファイルを受け入れるサーバー側のコード スニペットです。
if (Listener.Pending())
{
client = Listener.AcceptTcpClient();
netstream = client.GetStream();
Status = "Connected to a client\n";
result = MessageBox.Show(message, caption, buttons);
if (result == System.Windows.Forms.DialogResult.Yes)
{
string SaveFileName = string.Empty;
SaveFileDialog DialogSave = new SaveFileDialog();
DialogSave.Filter = "All files (*.*)|*.*";
DialogSave.RestoreDirectory = true;
DialogSave.Title = "Where do you want to save the file?";
DialogSave.FileName = "sample.txt";
if (DialogSave.ShowDialog() == DialogResult.OK)
SaveFileName = DialogSave.FileName;
if (SaveFileName != string.Empty)
{
int totalrecbytes = 0;
FileStream Fs = new FileStream(SaveFileName, FileMode.OpenOrCreate, FileAccess.Write);
while ((RecBytes = netstream.Read(RecData, 0, RecData.Length)) > 0)
{
Fs.Write(RecData, 0, RecBytes);
totalrecbytes += RecBytes;
}
Fs.Close();
}
netstream.Close();
client.Close();
}
}
今、私が直面している問題は、電話から文字列を送信すると、サーバーが接続を正常に認識し、ファイルを保存するように求めることです。しかし、ファイルを保存して開くと、ファイルは空白です。
サーバーが正常に動作しているかどうかを確認するために、単純な C# クライアント アプリ (電話ではなく Windows) を作成し、それを使用してファイルを送信しました。そして、すべての内容がそのままで正常に保存されました。
私を助けてください。
問題: まず、電話から送信された文字列がサーバーによって認識されますが、ファイルに保存できません。第二に、電話(クライアント)から画像を送信する方法は?
画像をbase64文字列に変換してから、文字列をサーバーに送信することを考えました。しかし、Windows Phone で画像を base64 文字列に変換する方法がわかりません。
私を助けてください。前もって感謝します!