作者geneteam (鼓)
站内Programming
标题[问题] BCB的NMStrm元件连续传送图档
时间Thu Apr 24 16:34:19 2008
//传送端
void __fastcall TForm1::StreamClick(TObject *Sender)
{
TFileStream *FStream;
FStream = new TFileStream(Edit1->Text+".bmp",fmOpenRead);
//Edit1->Text 图档编号
NMStrm1->Host="192.168.1.10";
NMStrm1->FromName="192.168.1.20";
NMStrm1->PostIt(FStream);
FStream->Free();
}
//接收端
void __fastcall TForm1::NMStrmServ1MSG(TComponent *Sender,
const AnsiString sFrom, TStream *strm)
{
TFileStream *FStream;
if(FileExists("buf.bmp"))
DeleteFile("buf.bmp");
FStream=new TFileStream("buf.bmp",fmCreate);
FStream->CopyFrom(strm,strm->Size);
FStream->Free();
Image1->Picture->LoadFromFile("buf.bmp");
}
当我传送第一张成功後
在改变Edit1->Text的数字
做另一张的传送时
就会当掉跑出
Project Project1.exe raised class ESockError with message
'10038:Socket operation on non-socket'.
Process stoppes. Use Step or Run to continue.
但是接收端是有成功收到第一张的
有时候是传到第三张当掉
所以不知道在做连续传送图档时
是不是不适合用NMStrm元件
还是需要做怎麽样的修正
请各位有碰过这个问题的能给我一些意见
谢谢~
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.175.37
※ geneteam:转录至看板 C_and_CPP 04/24 16:38
1F:→ mitme:不要用loadfromfile的方式 因为蛮耗时的 140.96.33.90 02/15 16:45
2F:→ mitme:用loadfromstream 试试 140.96.33.90 02/15 16:46