[plt-scheme] Strange Error: TCP port becomes "full"

From: Matthew Flatt (mflatt at cs.utah.edu)
Date: Thu Oct 10 11:07:31 EDT 2002

I still can't produce the problem on my machines, but probably it
doesn't matter.

MzScheme's implementation assumed that a non-blocking recv() won't fail
with EAGAIN if it immediately follows a successful select(). However,
that behavior doesn't appear to be guaranteed anywhere, and it's easy
enough to handle EAGAIN. So I've exp-tagged a new
plt/src/mzscheme/src/network.c that will hopefully solve your problem.

BTW, the "net" collection contains some FTP client code. If you need
extra functionality and can supply improvements to the existing
library, we'd much appreciate it. (I noticed that the FTP code didn't
work when the server doesn't request a password, as for anonymous login
to ftp.club-internet.fr, and I've fixed that.)


At Thu, 10 Oct 2002 10:01:29 +0200, sylvain.beucler.fac at libertysurf.fr wrote:
> I attached the FTP downloader code.
> The downloading part is in the 'grab procedure of the (make-connection)
> object creator.
> I tried again this morning, and it could download up to 15MB before the
> error. It seems it is very random, unfortunately, unlike with the other code.
> I just read the messages in the mailing-list archive, but it seems the
> download was simply stopped as if the server sent <EOF>. Here, the
> application is entirely stopped, and I get "tcp-read: error reading
> (Resource temporarily unavailable; errno=11)".
> I do not have the code to grab HTTP pages from text URL list right
> here, but I can send it tonight if needed.

Posted on the users mailing list.