Hello again!

Code:
procedure TForm1.CSOCK1Read(Sender: TObject; Socket:TCustomWinSocket);
begin
  VSOCKR2 := Socket.ReceiveText;
  if VSOCKR2 <> 'Response&#58; Server recieved text.' then MTXB1.Lines.Add&#40;VSOCKR2&#41;;
  if VSOCKR2 = 'Response&#58; Server recieved text.' then
  begin
    MSCOUNT2 &#58;= MSCOUNT2 + 1;
    LBMSCOUNT2.Caption &#58;= IntToStr&#40;MSCOUNT2&#41;;
  end;
end;

procedure TForm1.SVATT1Timer&#40;Sender&#58; TObject&#41;;
begin
  if VSOCKR2 = 'Response&#58; Server recieved text.' then
  begin
    if CSOCK1.Socket.Connected = true then CSOCK1.Socket.SendText&#40;'Testing server...'&#41;;
   end;
end;
The problemtic code is the timer.
If the value in VSOCKR2 is not "Response:..." no new messages are sent to the server. Because no new messages are sent to the server, your app don't receive a response and the value in VSOCKR2 will remain incorret.
Therefore it will stop sending.
On the other side, if the value in VSOCKR2 is correct, you send a message to your server and you don't reset the value to VSOCKR2 to ''. This means that VSOCKR2 is still correct, even if you don't have received any response from the server.

I am going to post my own code example later.

HTH