線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2278
推到 Plurk!
推到 Facebook!

利用NMStrm傳兩張以上的圖

答題得分者是:RaynorPao
geneteam
一般會員


發表:2
回覆:2
積分:0
註冊:2007-01-12

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-04-22 23:47:37 IP:140.112.xxx.xxx 訂閱
自己傳自己接收

void __fastcall TForm1::Button1Click(TObject *Sender)
{
int i=0;
for(i=0; i<=4; i )
{
TMemoryStream *ms=new TMemoryStream;
TJPEGImage *jpg=new TJPEGImage;
jpg->LoadFromFile(IntToStr(i) ".jpg");
jpg->SaveToStream(ms);
ms->Position=0;
NMStrm1->Host="192.168.1.10";
NMStrm1->FromName="192.168.1.10";
NMStrm1->PostIt(ms);
delete jpg;
delete ms;
}

}
//---------------------------------------------------------------------------
void __fastcall TForm1::NMStrmServ1MSG(TComponent *Sender,
const AnsiString sFrom, TStream *strm)
{
TMemoryStream *ms=new TMemoryStream;
ms->Position=0;
strm->Position=0;
ms->CopyFrom(strm, strm->Size);
ms->Position=0;
ms->SaveToFile("Rec_" IntToStr( k) ".jpg");
delete ms;
}

但是
程式會跑出Project Project1.exe raised class ESockError with message '10038:Socket operation on non-socket'.
Process stoppes. Use Step or Run to continue.
當我一步一步debug時
跑到要傳第二張的時候就會出現這訊息了

這個問題我有蒐尋過此板
但是沒有一個解答
不知道各位先進
是否能告訴我該如何解決嗎
謝謝~
geneteam
一般會員


發表:2
回覆:2
積分:0
註冊:2007-01-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-04-23 13:42:59 IP:140.112.xxx.xxx 訂閱
 我原本是寫在即時攝影中的callback function中
就是將每張frame存成bmp file
達到某些條件時
將特定的幾張bmp持續傳送出
所以用到的NMStrm是需要做連續傳送的

發現會出錯之後
就先嘗試著傳已有的圖
而且是手動每按一次button傳一次
但還是會出錯

後來搜尋本版之後
發現之前的版主包子大哥有提供程式碼說是沒有問題
但我測了之後還是不行
所以我把這段程式碼po上來
請各位先進能給我一些意見
謝謝~
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-08-18 23:14:16 IP:61.60.xxx.xxx 訂閱
以下的程式碼,我個人已經試過是可以正確執行的;所以,麻煩請你再試一次

[code cpp]
#include "jpeg.hpp"
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
NMStrm1->Host="127.0.0.1";

for(int i=1; i<=9; i )
{
TMemoryStream *ms=new TMemoryStream;
TJPEGImage *jpg=new TJPEGImage;

jpg->LoadFromFile("1" IntToStr(i) ".jpg");
jpg->SaveToStream(ms);
ms->Position=0;

NMStrm1->FromName="1" IntToStr(i) ".jpg";
NMStrm1->PostIt(ms);
delete jpg;
delete ms;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::NMStrmServ1MSG(TComponent *Sender,
const AnsiString sFrom, TStream *strm)
{
TMemoryStream *ms=new TMemoryStream;
ms->Position=0;
strm->Position=0;
ms->CopyFrom(strm, strm->Size);
ms->Position=0;
ms->SaveToFile("Rec_" sFrom);
delete ms;
}
//---------------------------------------------------------------------------
[/code]
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
系統時間:2017-12-14 6:33:28
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!