🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: borland.public.cppbuilder.internet.socket
Article #2472

Re: TServerSocket SendText Exception

#2472
From: Eric Patterson
Date: Mon, 17 Apr 2006 18:40
63 lines
2964 bytes
What about this:

          int len = AMsg.Length();
          while(len > 0)
          {
            int sendReturn = 
Server->ServerSocket1->Socket->Connections[ii]->SendText(AnsiString(AMsg+"\n"));
            if(sendReturn == -1)
            {
                //need to wait for OnClientWrite
                while( OnClientWriteBool != true )
                {
                        Sleep(10);
                }
                OnClientWriteBool = false;
            }else
            {
                len -= sendReturn;
            }
            if( len != 0)
            {
               Sleep(10);       // allow some time for Socket to send the 
queued up data.
            }
          }

The OnClientWriteBool is turned 'true' by the OnClientWrite event.

Eric



"Remy Lebeau (TeamB)" <no.spam@no.spam.com> wrote in message 
news:4443ca2a$1@newsgroups.borland.com...
>
> "Eric Patterson" <eric.patterson@bepco.com> wrote in message
> news:44439c71$1@newsgroups.borland.com...
>
>> I check to make sure there is an active connection right before I do
>> a SendText and pass it an ansistring.
>
> Your code is not using SendText() correctly in general.  You are not 
> taking
> into account that SendText() may not send all of your data in a single
> operation, requiring you to re-call SendText() multiple times in a loop in
> order to send all of your string.  Please go to http://www.deja.com and
> search through the newsgroup archives.  Sample code has been posted many
> times before.
>
> The exception is being thrown at random times usually after running more
>> then 6 hours.  The exception that is being thrown is an invalid integer
>> exception.
>
> Do you mean that you are getting an EListError exception with a message of
> "List index out of bounds (12345)" ?  If so, then the only way that
> particular exception can occur in the code you showed is if you are 
> passing
> an incorrect index value to the Connections[] property.
>
>
> Gambit
>
> 
Technical Details
Message-ID: <4443e13c$1@newsgroups.borland.com>
Path: arc1-ca.pugleaf.net!g2news1.google.com!news3.google.com!news4.google.com!news2.volia.net!newsfeed01.sul.t-online.de!t-online.de!newsgroups.borland.com!not-for-mail
References: <44439c71$1@newsgroups.borland.com> <4443ca2a$1@newsgroups.borland.com>

Show Full Headers
Complete Article Headers
X-Google-Thread: 11508e,fea0b13af0f4efa8
X-Google-Attributes: gid11508e,public
X-Google-Language: ENGLISH,ASCII-7-bit
From: "Eric Patterson" <eric.patterson@bepco.com>
Newsgroups: borland.public.cppbuilder.internet.socket
References: <44439c71$1@newsgroups.borland.com> <4443ca2a$1@newsgroups.borland.com>
Subject: Re: TServerSocket SendText Exception
Date: Mon, 17 Apr 2006 14:40:58 -0400
Lines: 65
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2900.2869
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2869
X-RFC2646: Format=Flowed; Original
NNTP-Posting-Host: 70.225.107.130
Message-ID: <4443e13c$1@newsgroups.borland.com>
X-Trace: newsgroups.borland.com 1145299260 70.225.107.130 (17 Apr 2006 11:41:00 -0700)
Path: arc1-ca.pugleaf.net!g2news1.google.com!news3.google.com!news4.google.com!news2.volia.net!newsfeed01.sul.t-online.de!t-online.de!newsgroups.borland.com!not-for-mail