socket编程的问题,大家都来看看
服务器端:
int itemlen=ListBox1->Items->Count;
int m=ServerSocket1->Socket->ActiveConnections;
for(i=0;i<=itemlen;i++)
{
AnsiString sdata1=ListBox1->Items->Strings[i];
AnsiString sdata2=ListBox2->Items->Strings[i];
Label2->Caption=sdata2;
int sdata1len=sdata1.Length();
AnsiString sdata=IntToStr(sdata1len)+sdata1+sdata2+"@online@@";
ServerSocket1->Socket->Connections[m-1]->SendText(sdata);
}
客户端:
AnsiString Data=Socket->ReceiveText();
AnsiString SubData1=Data.SubString(Data.Length()-8,Data.Length());
if(SubData1=="@online@@")
{
Label5->Caption=Data;
Label6->Caption=Data.Length();
int olLen=StrToInt(Data.SubString(1,1));
AnsiString ol=Data.SubString(2,olLen);
Label3->Caption=ol;
AnsiString olip=Data.SubString(olLen+2,Data.Length()-10-olLen);
Label4->Caption=olip;
}
为什么当服务器端的listbox有多行数据时,发给客户端的数据会一只叠加上去,也就是变成这样的格式3xxx127.0.0.1@online@@3ccc127.0.0.1@online@@
当只有一个数据时就正常了,就是3ccc127.0.0.1@online@@这样能正确分析了
不是说当收到新的数据时会把旧的清空吗,我该怎么办啊?