Trouble with "Web server and client"

new topic     » topic index » view thread      » older message » newer message

I am having some trouble with Pete Eberlein's "Web server and client" for 
Linux (http://www.rapideuphoria.com/webutils.zip).

Since the code is just socket communications, it need not be used only for 
web access.  Just change the port to 21 for telnet, 143 for imap, etc., and 
you should be able to communicate, right?

That's what I thought, but I've run into a stumbling block.

Take a look at Pete's sample code, which works fine:
    data = allocate(1)
    while 1 = c_func(read, {i, data, 1}) do
        reply &= peek(data)
    end while
    free(data)

Now take a look at mine, which gets stuck for some reason:
    data=allocate(1)
    while 1 = c_func(read, {session, data, 1}) do
        reply &= peek(data)
    end while
    free(data)

So I put in a couple lines to see what it being read:
puts(1,sprintf("%s:%d-",{reply[length(reply)],
                         reply[length(reply)]}))

I am running this with trace on, by the way.  In both cases, the last 
characters read are a 13 then a 10.  But with Pete's code, the while loop 
gets exited, while with mine, it just gets stuck; the cursor stays on the 
'end while' line and won't budge.

I am accessing Port 143 (IMAP), as opposed to 80 (http), but other than 
that, there isn't any difference.

Can anyone see what I'm doing wrong?  I just don't see why my code hangs on 
the while loop.  He has i declared as an integer, and data as an atom, 
while have session as an integer, and data as an atom.  Any ideas?

Thanks,
Ted Fines
Macalester College

new topic     » topic index » view thread      » older message » newer message

Search



Quick Links

User menu

Not signed in.

Misc Menu