[Gambas-user] Socket cuts out before full page is read.

Benoit Minisini gambas at ...1...
Fri Nov 7 15:44:11 CET 2008


On vendredi 7 novembre 2008, Robert Moss wrote:
> First of all I would like to thank all of you for your efforts ^_^ you have
> have been a wonderful ally in learning this new language.
>
> I am using the socket control to create a local ui to a web interface.
> I create a request that looks like:
>
> GET / HTTP/1.0
> Host: www.microsoft.com
> User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)
>
> and when it reads in the data, it cuts out not even half way thru.
>
> I use this code:
>
> PRIVATE FUNCTION ConnSend(Data AS String) AS String
>   DIM sBuf AS String
>   DIM i AS Integer 'counter
>   DIM sTotal AS String
>
>   sBuf = Data
>
>   ME.Connect(myHTTP.USE_HOST, myHTTP.USE_PORT)  'connects to host:port
>   DO WHILE (ME.Status <> 7) AND (ME.Status > 0)
>     WAIT 0.1
>     INC i
>     IF i = 200 THEN
>       'Timeout - Bail
>       DEBUG "Timeout - waiting for connection"
>       MyClose() 'close and quit
>       RETURN ""
>     END IF
>   LOOP
>   i = 0 'reset counter
>
>   IF ME.Status <> 7 THEN
>     DEBUG "Error: " & ME.Status
>     MyClose()
>     RETURN "" 'ensure we don't go on
>   END IF
>
>   WRITE #ME, sBuf, Len(sBuf) 'Writes the get or post headers with cookies
> sometimes
>
>   DO WHILE Lof(ME) = 0
>     WAIT 0.1
>     INC i
>     IF i = 200 THEN
>       'Timeout - Bail
>       DEBUG "Timeout - Waiting for reply"
>       MyClose()
>       RETURN "" 'ensure we don't go on
>     END IF
>
>   LOOP
>
>   DO WHILE (NOT Eof(ME))
>     READ #ME, sBuf, Lof(ME)  'I previously just used the standard READ #ME,
> sBuf, Lof(ME) by itself, but i thought this might work
>     sTotal &= sBuf
>   LOOP
>
>   RETURN sTotal
>
> END
>
> Is there anything I can do?
>
> In the return header, it has
>
> Connection: Close
>
> and no mention of Chunk (data sending)

Do you end your lines with CR+LF? And not just CR?

-- 
Benoit Minisini




More information about the User mailing list