最近在做無線視頻傳輸模塊,下位機用的是stm32F103,攝像頭用的是ov2640,采用的是tcp傳輸,下位機作為服務器將圖片發送到電腦端的上位機。現在下位機可以正常的發送資料,先發送圖片的大小,再發送圖片的資料。但是在寫上位機的時候,一直沒有辦法把影像從位元組流轉回圖片顯示,麻煩大家幫忙看下,或者有什么好的排查方法!
我的接收函式的代碼:
_client = new TcpClient(ipadd, port);
ns = _client.GetStream();
private void recvdata() //接收資料
{
while (true)
{
int len = 0;
byte[] bitLen = new byte[8];
len = ns.Read(bitLen, 0, bitLen.Length);
long contentLen = BitConverter.ToInt64(bitLen, 0);
int size = 0;
MemoryStream ms = new MemoryStream();
while (size < contentLen)
{
//分多次接收,每次接收256個位元組,
byte[] bits = new byte[256];
int r = ms.Read(bits, 0, bits.Length);
if (r <= 0) break;
ms.Write(bits, 0, r);
size += r;
}
Image img = Image.FromStream(ms); 報錯是在這一句,提示引數錯誤
pictureBox1.Image = img;
button1.Enabled = true;
button2.Enabled = false;
send.Enabled = false;
}
}
uj5u.com熱心網友回復:
都提示引數錯誤了,你不會檢查一下引數的型別與個數嗎uj5u.com熱心網友回復:
還有個問題 我怎么知道發過來的資料可不可以轉化成圖片啊uj5u.com熱心網友回復:
用
try
{....}
catch
{....}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/115508.html
標籤:網絡通信
上一篇:求一種LMS的改進演算法
下一篇:sock = ::socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); 為什么要用::
