C# 如何通过TCP将JPG从一台Windows手机发送到另一台?我已经发过短信了

C# 如何通过TCP将JPG从一台Windows手机发送到另一台?我已经发过短信了,c#,.net,tcp,jpeg,C#,.net,Tcp,Jpeg,如何通过TCP将JPG从一台Windows手机发送到另一台 我发现在另一个显示如何通过TCP发送文本的SO主题(下面)中,但是如何将JPG转换为字节并发送它?大多数JPGE都大于4kb,如何处理 private void sendMessage() { connectArgs = new SocketAsyncEventArgs { RemoteEndPoint = new DnsEndPoint(localIP, Int32.Parse(port)) }; connectArg

如何通过TCP将JPG从一台Windows手机发送到另一台

我发现在另一个显示如何通过TCP发送文本的SO主题(下面)中,但是如何将JPG转换为字节并发送它?大多数JPGE都大于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
从接收到的字节重新创建图像对象,例如,如果要直接显示图像。

但是如何分割该图像以使其适合
var缓冲区
?无论如何,谢谢。是的,我想直接显示图像,将其加载到:``请您提供一个示例。您可以将TCP数据视为一个流(因为它实际上是一个流),然后从流创建一个图像