boblq wrote:
> Hi Guys, 
> 
> Could not make the main meeting tonight :(
> 
> But here is a puzzler. 
> 
> 
> On Server 1 
> I have a simple HTML forms file 
> that invokes a php program that 
> writes the values input into the form
> into a simple text file and then 
> redirects to tat text file thus displaying it.
> 
> This works fine. I surf in from Client 1
> fill in some values hit Submit and see 
> them displayed. 
> 
> So  far so good. 
> 
> But I actually want to pull those down on 
> another box, lets call it Client 2, for  use 
> in another program. If use wget to grab 
> the file written by the previous process
> all is well. I can go back to my form on
> Client 1 and repeat the entire sequence.
> 
> Now though I want to replace wget with 
> a simple Python program. So I write
> pget.py
> 
> #!/usr/bin/python
> 
> from urllib import urlopen
> 
> call_url = "http://some_server/some_dir/test.txt";
> u = urlopen(call_url)
> doc = u.reaad()
> u.close()
> print doc
> 
> Now this little pget.py works fine and grabs the
> file just like wget. Except there is a problem. 
> Now when I go back to Client 1 and try to 
> enter new values the Client hangs for a long
> time upon hitting Submit, ie. maybe a minute
> or more (I have not actually timed it.) 
> 
> Color me puzzled. I am not even sure how
> to debug it. 
> 
> Both Client 1 and Client 2 are behind a 
> Linksys router and access Server 1
> through a cable modem and the Internet. 
> I don't think that is the problem though ...
> after all wget does not cause this issue. 
> 
> Anybody have a clue? Or a suggestion as to 
> how to proceed? I really don't want to be 
> reduced to packet sniffing. 

The behavior looks like the close() isn't working.

Ahhh.., try
  ./pget.py;netstat -anto
and look for an open connection with a 60s timer counting down.

I find that code just like yours leaves (I believe) half-open sockets
with or without the close.  Maybe that's locking the server-end?

But I find that urllib2 works even without an explicit close. You might
try using urllib2 instead of urllib if you have/can get it on your
system. If not, it would be a bit painful to drill into the urllib code
to fix the socket.close() interface.

More ahhh.., I see that urllib2.close is actually a dummy function -- so
maybe that further suggests a bugfix between urllib and urllib2.

(I've kinda-remember seeing other disparaging remarks about urllib and
preferences for urllib2).

Regards,
..jim


-- 
[email protected]
http://www.kernel-panic.org/cgi-bin/mailman/listinfo/kplug-lpsg

Reply via email to