簡體   English   中英

在Windows Phone中使用TCP套接字客戶端應用程序發送圖像

[英]Send image using TCP Socket Client App in Windows Phone

我正在嘗試為Windows Phone開發一個簡單的TCP客戶端應用程序。

在服務器端,我正在使用一個簡單的C#服務器應用程序,該應用程序接受連接,然后保存文件。

我在MSDN上看到了一個示例(對於客戶端應用程序, http://msdn.microsoft.com/zh-cn/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字符串。

請幫我。 提前致謝!

您當然可以自己編寫所有這些內容,但是您是否考慮過使用庫來幫助節省時間? 如果是這樣,那么請在此處使用示例中的圖像檢查networkcomms.net ,特別是有關發送非原始對象的教程。

免責聲明:我是該庫的開發人員。

將imageStream轉換為內存Stream。 然后轉換為字節,然后轉換為Base 64。

Stream imgStream = readImgFromFile(filename);
var memoryStream = new MemoryStream(imgStream);
byte[] result = memoryStream.ToArray();
base64 = System.Convert.ToBase64String(result);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM