Wolfgang Rohdewald wrote: [...] > I should have given more details, sorry. > > I am writing both the server and the client with twisted pb. > The server (a game server) sends messages to four player clients. > > Say the game server sends messages A and B to a player client. > > Is it granted that the player client always processes A first even > if the internet routes the messages differently and B arrives > first?
A PB connection uses a single TCP connection. TCP guarantees that the bytes will arrive in order (or not at all), so the messages will arrive at the client in the order the server sent them, assuming there is one persistent PB connection between each client and the server (which seems likely from your description). So it is impossible for the internet to route the messages such that B will arrive before A. Neither PB nor TCP guarantee anything about when the recipient “processes” those messages though, just that they will arrive in the order they were sent. For example consider if A and B arrive very close together (in the same millisecond, say) and the client processes them by dispatching to a thread pool, which might take 10s or even 100s of milliseconds to fully process the message (and determine a reply, if applicable)... then depending on the exact work required and exactly how the OS schedules the threads, then B might be fully processed before A is, even though A arrived first. Apologies for such a pedantically precise and abstract answer, but what exactly you mean when you say “processes” is a bit ambiguous. I hope this reply helps. -Andrew. _______________________________________________ Twisted-Python mailing list Twisted-Python@twistedmatrix.com http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python