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

标签 c# http tcp mjpeg

我想使用全局 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/

相关文章:

c# - "Hiding"子类中具有非泛型方法的泛型方法

c# - 将 uint 从 c 移植到 c#

c# - DBTransaction 回滚抛出

javascript - Angularjs - $http 请求在函数内部不起作用

linux - 不需要 root 访问权限的优秀 Linux TCP/IP 监控工具?

java - 在java中获取用于tcp连接的开放套接字

c# - 在asp.net mvc5登录中加密用户名

http - 中间件如何在 Go 的 chi 路由中工作以及 http.Handler 参数在中间件中指的是什么?

通过 .htaccess 从 http 到 https

Java NIO SocketChannel IOException : Broken pipe