[Twisted-Python] Packet Fragmentation
Nima Ghanavatian
nimag at rogers.com
Wed Oct 8 16:51:57 MDT 2008
Hi,
I'm using TCP to pass large files back and fourth. So far I've follow and expanded on the twisted code examples for a simple server/client.
Everything works fine for me until the packets get large enough that fragmentation kicks in.
>From one side, I'm sending packets like so:
class EchoClient(protocol.Protocol):
def connectionMade(self):
data = ""
while len(data) < 10000:
data=data+'a'
self.transport.write(data)
and on the receiving end:
def dataReceived(self, data):
print data
I noticed after multiple iterations the data buffer fills up to the total 10000 bytes, but this takes 3 iterations of dataReceived(). Common sense suggests to have a simple "if len(data) == totalPacketSize" to solve my problem, but I have different sized packets coming in all the time, and can't hardcode this part.
I was wondering if there's any way in Twisted/Python to handle packet fragmentation. Can I access the last fragment flag in the TCP packet somehow? Or is there a total packet size sent with the packet automatically?
If not, what would be the best way to solve this?
thanks,
Nima
-------------- next part --------------
An HTML attachment was scrubbed...
URL: </pipermail/twisted-python/attachments/20081008/fde32246/attachment.html>
More information about the Twisted-Python
mailing list