[Twisted-Python] How to determine whether transport.write() succeed?

Todong Ma gbstack08 at gmail.com
Wed Apr 3 03:09:14 MDT 2013


Ok, will try AMP

thank you very much!


On Mon, Apr 1, 2013 at 3:49 PM, Glyph <glyph at twistedmatrix.com> wrote:

>
> On Mar 31, 2013, at 6:09 PM, Todong Ma <gbstack08 at gmail.com> 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
> Twisted-Python at twistedmatrix.com
> http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: </pipermail/twisted-python/attachments/20130403/4d54bd6b/attachment.html>


More information about the Twisted-Python mailing list