Newsgroups : Borland : borland.public.delphi.internet.winsock : 2007 Nov : Re: Indy 10 and winsock error 10053

www.cryer.info
Managed Newsgroup Archive

Re: Indy 10 and winsock error 10053

Subject:Re: Indy 10 and winsock error 10053
Posted by:"Remy Lebeau (TeamB)" (no.spam@no.spam.com)
Date:Wed, 28 Nov 2007 11:02:26

"Don Wilcox" <don@drdwilcox.com> wrote in message
news:474da10e$1@newsgroups.borland.com...

> It is in C++. I post here only because the traffic is better.

Please don't do that.  There is plenty of traffic in the C++ newsgroups.

>    if (svc.SubString(1, 5) == "https") {
>        // Need an SSL IOHandler
>        TIdSSLIOHandlerSocketOpenSSL *ioh = new
> TIdSSLIOHandlerSocketOpenSSL(http);
>        ioh->Port = 443;
>        ioh->UseNagle = false;
>    } // if

You are instantiating an SSL IOHandler, but you are not actually assigning
it to the TIdHTTP at all.

>    std::auto_ptr<TMemoryStream> req(new TMemoryStream);
>    req->Write(rqXML.data(), rqXML.Length());

Did you verify that Write() is actualy writing all of the data in full?
Write() has a return value that indicates the number of bytes actually
written to the stream.

Rather than using TMemoryStream, how about TStringStream instead?

    std::auto_ptr<TStringStream> req(new TStringStream(rqXML));

Then you are not making a second copy of the data at all.

>    // Add the SOAPAction HTTP Header to the Request
>    String hdr = "SOAPAction: \"" + fAction.Server + fAction.Name + "\"";
>    http->Request->CustomHeaders->Clear();
>    http->Request->CustomHeaders->Add(hdr);

    http->Request->CustomHeaders->Values["SOAPAction"] = \"" +
fAction.Server + fAction.Name + "\";

> Again, it works up to something less than 8MB.

You said 5 MB earlier.

> It gets to the third packet

How are you determining that?  How large are the packets?


Gambit

Replies:

none

In response to:

www.cryer.info
Managed Newsgroup Archive