1,317
社区成员
发帖
与我相关
我的任务
分享if(tag==0)
{
char buf;
int leng1,leng2;
leng1=Socket->ReceiveLength();//
Socket->ReceiveBuf(&buf,1);
tag=StrToInt(buf);
leng2=Socket->ReceiveLength();//不是这次读剩下的,而是整个缓冲区剩下的
//free(buf);
}
/*消息接收部分代码,这里是正确的
else if(tag==1)
{
int pos1,pos2,leng;
AnsiString s,txt,color,size;
leng=Socket->ReceiveLength(); // 虽然第二次进来,但是其和leng2一样大
s=Socket->ReceiveText();
pos1=s.Pos(';');
color=s.SubString(1,pos1-1);
pos2=s.Pos('/');
size=s.SubString(pos1+1,pos2-pos1-1);
if(color=="Red")
{
RichEdit2->Font->Color=clRed;
}
if(color=="Green")
{
RichEdit2->Font->Color=clGreen;
}
if(color=="Blue")
{
RichEdit2->Font->Color=clBlue;
}
RichEdit2->Font->Size=StrToInt(size);
RichEdit2->Text=s.SubString(pos2+1,leng);
tag=0;
}
*/
/*图片接收*/
else
{
int rleng;
rleng=Socket->ReceiveLength();
if(rleng!=0)
{
char *buf2=new char[rleng];
Socket->ReceiveBuf(buf2,rleng);
receiveStream->Write(buf2,rleng);
rleng=Socket->ReceiveLength();
if(rleng==0) //接收完成
{
receiveStream->Position=0;
AnsiString path; // 应用程序路径
path=ExtractFilePath(Application->ExeName);
receiveStream->SaveToFile(""+path+"\\temp.jpeg");
Memo1->Text="图片保存在当前目录下,点击预览";
tag=0;
}
}
}
}