聊天服务器采用c++ builder,客户端用的是java,现在的问题是服务器发给客户端的消息,发送完以后需要关闭或者停止服务器的socket,客户端才能接受到服务器的消息,求高手解答。
以下是服务器程序
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Main.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button_listenClick(TObject *Sender)
{
  ServerSocket_applet->Active=false;
  ServerSocket_applet->Port=StrToInt(Edit_port->Text);

  ServerSocket_applet->Active=true;
  Button_listen->Enabled=false;
  Button_stop->Enabled=true;
  Edit_port->Enabled=false;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button_stopClick(TObject *Sender)
{
  ServerSocket_applet->Active=false;
  Button_listen->Enabled=true;
  Button_stop->Enabled=false;
  Edit_port->Enabled=true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ServerSocket_appletClientConnect(TObject *Sender,
      TCustomWinSocket *Socket)
{ AnsiString Status;
  Status=DateTimeToStr(Now())+":"+Socket->RemoteAddress+"("+Socket->RemoteHost+")"+" Connected";
  ListBox_log->Items->Add(Status);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ServerSocket_appletClientDisconnect(
      TObject *Sender, TCustomWinSocket *Socket)
{ AnsiString Status1;
  Status1=DateTimeToStr(Now())+":"+Socket->RemoteAddress+" ("+Socket->RemoteHost+") "+" Disconnected";
  ListBox_log->Items->Add(Status1);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ServerSocket_appletClientRead(TObject *Sender,
      TCustomWinSocket *Socket)
{  String Is_read;
  Is_read=Socket->ReceiveText();
  Memo_data->Lines->Add(DateTimeToStr(Now())+" 收到来自 "+Socket->RemoteAddress+"("+Socket->RemoteHost+") 的数据"+":"+Is_read);
  //Memo_data->Text=Memo_data->Text+DateTimeToStr(Now())+" 收到来自 "+Socket->RemoteAddress+"("+Socket->RemoteHost+") 的数据"+":"+Is_read;
  //Socket->SendText(DateTimeToStr(Now())+" "+Socket->RemoteAddress+"("+Socket->RemoteHost+")"+":"+Is_read);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button_exitClick(TObject *Sender)
{
  ServerSocket_applet->Close();
   Close();
}
//---------------------------------------------------------------------------

void __fastcall TForm1::ServerSocket_appletAccept(TObject *Sender,
      TCustomWinSocket *Socket)
{
  AnsiString strPrompt="服务器消息:"+Socket->RemoteHost+"加入";
 // for(int i=0;i<ServerSocket_applet->Socket->ActiveConnections;i++)
 // ServerSocket_applet->Socket->Connections[i]->SendText(strPrompt);
  Memo1->Lines->Add(strPrompt);
  //StatusBar1->Panels->Items[0]->Text=strPrompt;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
  AnsiString strPrompt1="服务器消息:"+Edit1->Text;
  for(int i=0;i<ServerSocket_applet->Socket->ActiveConnections;i++)
  ServerSocket_applet->Socket->Connections[i]->SendText(Edit1->Text);
  //ServerSocket_applet->Active=false;
  //ServerSocket_applet->Port=StrToInt(Edit_port->Text);
  //ServerSocket_applet->Active=true;
  Memo_data->Lines->Add(strPrompt1);
   Edit1->Text="";
}
//---------------------------------------------------------------------------