C# 如何通过TCP将JPG从一台Windows手机发送到另一台?我已经发过短信了
如何通过TCP将JPG从一台Windows手机发送到另一台 我发现在另一个显示如何通过TCP发送文本的SO主题(下面)中,但是如何将JPG转换为字节并发送它?大多数JPGE都大于4kb,如何处理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
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数据视为一个流(因为它实际上是一个流),然后从流创建一个图像