gpt4 book ai didi

c# - 如何通过 TCP 通过 Internet 将 Motion JPEG 发送到 Windows Phone

转载 作者:可可西里 更新时间:2023-11-01 02:52:08 26 4
gpt4 key购买 nike

我想使用全局 ip 89.232.123.122 从我的电脑发送动态 JPEG 到 Windows Phone 手机。如何与那个手机建立连接并通过连接推送mjpeg?

最佳答案

要发送多媒体(如动态 JPEG),请使用 UDP 而不是 TCP。

在发件人端使用此代码:

  UdpClient sendFrame = new UdpClient();
// your image is img:
Bitmap img = new Bitmap("pic.png");


// always send image
while (true)
{
MemoryStream memory_Stream = new MemoryStream();
// convert bitmap to jpg
SaveJPG100(img, memory_Stream);

byte[] byte_Of_Frame = memory_Stream.ToArray();
// send data on port 2000 on remote host
sendFrame.Send(byte_Of_Frame, byte_Of_Frame.Length,"89.232.123.122",2000);

}

//将 btm 转换为 jpg

public void SaveJPG100(Bitmap bmp, System.IO.Stream stream)
{

EncoderParameters encoderParameters = new EncoderParameters(1);
encoderParameters.Param[0] = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, 100L);
bmp.Save(stream, GetEncoder(ImageFormat.Jpeg), encoderParameters);
}

// generate jpg description
public ImageCodecInfo GetEncoder(ImageFormat format)
{

ImageCodecInfo[] codecs = ImageCodecInfo.GetImageDecoders();

foreach (ImageCodecInfo codec in codecs)
{
if (codec.FormatID == format.Guid)
{
return codec;
}
}
return null;
}

在接收方使用此代码

            UdpClient receiveFrame = new UdpClient(2000);
// recieve data from any ip address and any port
IPEndPoint remote = new IPEndPoint(IPAddress.ANY, 0);

while (true)
{

byte[] byte_Of_Frame = receiveFrame.Receive(ref remote);
MemoryStream ms = new MemoryStream(byte_Of_Frame);

pictureBox1.Image=(new Bitmap(ms));
}

关于c# - 如何通过 TCP 通过 Internet 将 Motion JPEG 发送到 Windows Phone,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21222481/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com