socket问题出在哪里?
我出次使用socket,编了一个程序:
把客户端的操作系统版本号,处理器,内存等相关信息发送到服务器端
并显示在服务器端的Memo中,显示时为什么它不会回车换行。
代码如下:
客户端发送代码:
void __fastcall TForm1::Button2Click(TObject *Sender)
{
String buff;
//以下是获取操作系统版本信息
OSVERSIONINFO OSVI;
OSVI.dwOSVersionInfoSize=sizeof(OSVERSIONINFO);
GetVersionEx(&OSVI);
buff=IntToStr(OSVI.dwMajorVersion)+"."+
IntToStr(OSVI.dwMinorVersion)+"."+
IntToStr(OSVI.dwBuildNumber)+"."+
IntToStr(OSVI.dwPlatformId)+"."+
OSVI.szCSDVersion;
ClientSocket1->Socket->SendText("客户端操作系统版本信息:"+buff);
//以下是获取内存信息
MEMORYSTATUS meminfo;
meminfo.dwLength=sizeof(MEMORYSTATUS);
//获取内存信息
GlobalMemoryStatus(&meminfo);
buff=IntToStr(meminfo.dwMemoryLoad)+"%的内存在使用";
ClientSocket1->Socket->SendText("客户端"+buff);
buff="物理内存共有:"+IntToStr(meminfo.dwTotalPhys)+"字节";
ClientSocket1->Socket->SendText("客户端"+buff);
buff="虚拟内存空间大小为:"+IntToStr(meminfo.dwTotalVirtual)+"字节";
ClientSocket1->Socket->SendText("客户端"+buff);
buff="为使用的虚拟内存空间大小为:"+IntToStr(meminfo.dwAvailVirtual)+"字节";
ClientSocket1->Socket->SendText("客户端"+buff);
//系统时间
buff=TimeToStr(Time());
ClientSocket1->Socket->SendText("客户端当前时间:"+buff);
}
//------------------------------------------------------------------------
服务器端接受代码:
void __fastcall TForm1::ServerSocket1ClientRead(TObject *Sender,
TCustomWinSocket *Socket)
{
Memo1->Lines->Add(AnsiString(Socket->ReceiveText()));
}
//---------------------------------------------------------------------------
应该是接受一条信息就在MEMO中显示一行,下一条信息在新的一行显示的。
为什么程序在运行时,除了操作系统版本号显示在单独一行以外,其他都
连续显示在同一行呢?