簡體   English   中英

如何通過TCP將JPG從一個Windows Phone發送到另一個Windows Phone? 我已經設法發送文字了

[英]How to send JPG over TCP from one Windows Phone to another? I already managed sending text

如何通過TCP將JPG從一個Windows Phone發送到另一個Windows Phone?

我發現在另一個SO主題(下面)中顯示了如何通過TCP發送文本, 但是如何將JPG轉換為字節並發送它? 大多數jpges都超過4kb如何處理?:

private void sendMessage() {
    connectArgs = new SocketAsyncEventArgs { RemoteEndPoint = new DnsEndPoint(localIP, Int32.Parse(port)) };
    connectArgs.Completed += connectArgs_Completed;
    connection = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
    connection.ConnectAsync(connectArgs);
}

void connectArgs_Completed(object sender, SocketAsyncEventArgs e) {
    if (e.SocketError == SocketError.Success && firstLoop) {
        firstLoop = false;
        var sendArgs = new SocketAsyncEventArgs();
        var buffer = Encoding.UTF8.GetBytes("MESSAGE STRING" + Environment.NewLine);
        sendArgs.SetBuffer(buffer, 0, buffer.Length);
        sendArgs.Completed += sendArgs_Completed;
        e.ConnectSocket.SendAsync(sendArgs);
    } else {
        //blad
    }
}

您應該閱讀原始圖像數據並將其與特殊的“代碼”或前綴一起發送,然后在接收端將原始圖像數據保存到.jpg文件並顯示。 您可以使用任何文件執行此操作。

TCP不會將數據包的大小限制為4KB,因此對您來說不應該是一個問題。 您只需要使用File.ReadAllBytes或流讀取器從文件中讀取所有圖像字節,然后將這些字節發送到接收器。

另外,如果您有圖像作為一個對象,你可以使用Marshal.StructureToPtr在發送端,然后使用Marshal.PtrToStructure重新創建從已收到的字節的圖像對象,如果你想顯示的圖像直接例。

暫無
暫無

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

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