On Mar 31, 2013, at 6:09 PM, Todong Ma <[email protected]> wrote:

> I wrote a simple client and server to get system information (e.g. cpu, 
> memory, etc.)
> Client send 'cpu' to the server, then server will return cpu's information to 
> client.
> 
> Now client send multiple commands to server one time, e.g. cpu, memory, 
> database, hard disk. But sometimes server couldn't receive some type 
> information (e.g. cpu, database), and the missed information type is not 
> fixed every time.
> 
> So I want client to check whether ITransport.write() sends message to server 
> successfully. If failed, client will resend the message to server.

It's a good thing that write() doesn't convey information about send() 
succeeding so you can't trust it :).  You can't rely on send() succeeding to 
convey this information: send() can succeed but all that means is that data 
moved from your application into your kernel.

What you want to do is to have an application-level acknowledgement of the data 
that was sent.

AMP will provide this for you automatically; when the Deferred returned by 
callRemote fires, the other end has received and acknowledged the information.

-glyph

_______________________________________________
Twisted-Python mailing list
[email protected]
http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python

Reply via email to