No error while sending via TCP Socket

Laszlo Nagy gandalf at designaproduct.biz
Fri Jun 30 05:45:22 EDT 2006


Martin Bürkle írta:
> Hi NG,
>
> I have writen a programm using TCP sockets. After i get the connection 
> to another socket I cut the Ethernet cable. Then I send a message.
> The program doesnt raise any exception. Can somebody tell me why and 
> give me a hint how to get an exception
>   
Okay, let's suppose you do not cut the ethernet cable and your message 
arrives on the other side, but the receiver program has a problem (not 
enough memory, bug in the handling code etc.) so your message is not 
processed on the other side. Most of the time, you do not only want to 
check if your message was transferred - you also need to check if that 
is actually processed. The TCP protocol cannot do this for you.Your 
clients needs to send back another message that notifies the sender 
about successful processing. Your sender program can wait for this 
notification, and then raise an exception after some timeout.

In other words, you need to develop your own communication protocol over 
TCP/IP. You should try to minimize the number of 
send-receive-notification cycles, because the answer time can be high, 
compared to the transfer speed of the communication channel. And also 
because notifications are usually small, and they a buffered for a 
while... I have seen a paper about designing protocols over TCP/IP, but 
I do not remember now. Others will help you for sure.

Please also consider UDP (if possible), which can be much more efficient.

Best,

   Laszlo








More information about the Python-list mailing list