[Twisted-Python] What does soap.Proxy.callRemote() do that simple client.getPage() doesn't ?

Roland Hedberg roland.hedberg at adm.umu.se
Fri Jun 29 07:11:32 EDT 2007


I have two similar implementation of senders, one using HTTP "PUT" and
the other SOAP (and a put operation).

The core of the soap sender are the lines:

 proxy = soap.Proxy(recv)
 return proxy.callRemote('put',data)

While the HTTP one uses:

 return client.getPage(recv, method="PUT", postdata=data, headers=headers)

Basically soap.Proxy.callRemote() uses client.getPage() though with the
method POST instead of PUT. So there are some clear similarities here.

Now, I also have a dispatcher which uses either of these senders
depending on various reasons.
The crux is that when there is a continuous flow of data leaving by HTTP
"PUT" I see no problems, while when the same happens for SOAP, after a
while I see complains about "twisted.internet.error.ConnectBindError:
Couldn't bind: 24: Too many open files.".

I guess files in this instance equates to internet connections.
If so, is that because soap.Proxy.callRemote() doesn't close down the
connections in the same way as a direct call to client.getPage() does ?

There is obviously something I don't understand here.
Anyone that can enlighten me ?
And tell me how to get rid of the connections.

Running Twisted 2.5.0

-- Roland

More information about the Twisted-Python mailing list