On 20/12/2012 21:32, Benito van der Zander wrote: > However, I figured out, why it does not work. > It has nothing to do with http or multithreading, but with the DNS requests. > > Synapse sends the query correctly to the router (192.168.1.100), but > there never comes a response! > <snip> > > However, it does work fine, if I run it in single threaded mode > manually, waiting for a connection to close, before opening the next one. > So it seems the router "forgets" the dns query, if there is another > query for the same host in the same second. > > > But there surely are many router like that, and synapse should work . Yes, a lot of "personal" routers have low limits on the number of connections. Space in the nat table is often an issue. > So how can we make it more robust? > > Try the DNS request again, if the first fails? DNS is using UDP, so no guarantee that the packet is delivered. You can intercept DNS resolution errors by using an THTTPSend.Sock.OnStatus event handler and analyzing Value when Reason=HR_ResolvingEnd. Value=':0' when DNS fails. Note that DNS also fails when the url does not have a valid domain. You can than then retry HTTPMethod from your program as many times as you want and find reasonable. Don't try to do this in the OnStatus method ;)
> Wait for a reply, before sending any new quest, synchronized among all > threads? > Cache all queries from all threads, and only send one query for each host? > You would have the same issue when several programs or several computers do such a request in the same time over the same router. No local solution will be able to avoid it. Only retry when fail is a robust solution. Ludo ------------------------------------------------------------------------------ LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial Remotely access PCs and mobile devices and provide instant support Improve your efficiency, and focus on delivering more value-add services Discover what IT Professionals Know. Rescue delivers http://p.sf.net/sfu/logmein_12329d2d _______________________________________________ synalist-public mailing list synalist-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synalist-public