Problems and doubts with sockets and timeouts


 
Thread Tools Search this Thread
Special Forums IP Networking Problems and doubts with sockets and timeouts
# 1  
Old 02-09-2016
Problems and doubts with sockets and timeouts

Hi! I need some help to understand a little bit more the behaviour about socket and TCP connections...
Here is my problem I have a client and a server that were written in python. The server program wait
until a message arrive and then print the message but if the message not arrive in a second (a timeout of a second)
the connection is reset. In the other side the client sends a message in a random time and a "Still alive" message in about 0.4 seconds to the server.

For unexplained reasons randomly a timeout happen in the server Smilie although that I send the message just in time ,
I don't understand why this happen. I tried deactivate the Nagle's algorithm but the only change that I saw was the
time in appear another time out (in fact more larger) . I thought that if I can't avoid that problem about time outs
I must send the message again if the message was not received, but this produce me a few questions

Where are the messages that were lost in time out?
Can I have repeated messages after the time out? I mean If the timeout occurs, the message I sent can arrive later?
Why timeouts occur if I send correctly and timely message?

Thanks!
# 2  
Old 02-09-2016
Hi Kovalevski,

Just going to take a couple of guesses here with your questions;

When you say you are having a "timeout" I'm going with the listener has timed out, in which case the messages are gone - nothing was listening for them.

Once the listener has timed out, it won't matter how many messages that are sent - nothing is listening for them.

Why the time out occurs before the message arrives could be down to a number of reasons, but most likely traffic on the network or load on the system.

The time out seems to be very short at a second, can you post some more detail about what you are trying to do?

Regards

Gull04
# 3  
Old 02-09-2016
Hi gull04 and thank you for you answer

*When you say you are having a "timeout" I'm going with the listener has timed out, in which case the messages are gone - nothing was listening for them.
--->Ok, yes I thought the same but maybe , just maybe the message is stucked in some
"magical" Smilie buffer and the message arrive after

*Once the listener has timed out, it won't matter how many messages that are sent -
nothing is listening for them.
---> Ok I did not explain that , but the recv is in a while loop , when a timeout happen the
connection is closed and the server wait for a new connection. After that, the server is
again hear for new messages

*Why the time out occurs before the message arrives could be down to a number of reasons, but most likely traffic on the network OR LOAD ON THE SYSTEM.
--->I started to suspect about that. I was debug this in two computers and when the timeout happened the server computer was doing some hard disk things (I heard the disk)
. About the network traffic that is a question How I can to know if the traffic on the
network is elevated or not?

* The time out seems to be very short at a second, can you post some more detail about what you are trying to do?
---> I just want to know as quickly as possible when the server or the connection dropped. I thought in use TCP_KEEP_ALIVE In this link (https://www.digi.com/wiki/developer/..._and_Keepalive) explains how activate TCP_KEEP_ALIVE but also in that link explain this

Code:
"Do NOT try to use TCP Keepalive to detect TCP socket failure more quickly than a few
minutes. People who try to set it for 5 seconds (or for milliseconds) invariably cause 
serious compatibility issues with other products - and invariably fail to be satisfied. If you 
truly require detecting a TCP socket failure in 1 second or less, which implies your TCP 
peers normally send data many times per second, then use non-blocking sockets with the
 "socket.timeout" exception to detect when no data had been received in your required 
time-frame. And if you accept that a TCP peer quiet for 1 second is bad, then close the 
socket manually and attempt recovery directly. Do not use TCP Keepalive for such short-
period detection. "

Thanks!
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Timeouts in expect script

Hi all. I have an expect script which for walks across servers, checks freespace and provides sorted list of biggest files #!/usr/bin/expect -- set timeout 600 stty -echo log_user 0 spawn -noecho sudo -u introot /home/introot/bin/twssh expect root send_user "Entering \r" send "uname\r"... (15 Replies)
Discussion started by: urello
15 Replies

2. Programming

Machine dependent problems when using Sockets.

I am trying to write code for a client-server scenario using AF_INET sockets.. As is usually the case, everything works fine and dandy on my machine, but gives me the following error at runtime: send: Socket operation on non-socket The error is thrown by the server when trying to send the... (5 Replies)
Discussion started by: ab_tall
5 Replies

3. UNIX for Dummies Questions & Answers

Unix doubts

Hi All, 1. how and who calls .profile when you login 2. what is PPID and what means by PPID = 0 Thanks in Advance (2 Replies)
Discussion started by: ravi.sadani19
2 Replies

4. UNIX for Dummies Questions & Answers

Doubts on FIFO

Hi , I m beginner for Unix and i want to use FIFO in my 2 Scripts . I want 1 script to read data from FIFO and other will write into FIFO. Despite reading so many articles/posts i am still unable sunchronize my scripts. My doubts are 1> Do We require both scripts as daemons to use... (0 Replies)
Discussion started by: Akshay
0 Replies

5. Shell Programming and Scripting

doubts in crontab

Hi All, I am tring to set a shedule for cron to execute my script in every 15 min, n want a mail alert on my mail id if cron fails to get data as input for my script, how can i set that? Thanks in advance Subin (1 Reply)
Discussion started by: subin_bala
1 Replies

6. UNIX for Dummies Questions & Answers

Unix doubts

Hello All, I am very new to UNIX. Please help me to find answers of below questions. 1.A script is saved with name ls. When we execute the script what it will execute? a) Will execute ls command b) Will execute the script c) Will execute script or command depends on the path ... (2 Replies)
Discussion started by: aswathy
2 Replies

7. UNIX for Advanced & Expert Users

Facing file processing timeouts

Hi In our ETL application we have used simple scripts to move & split the files. We are randomly facing timeouts on these jobs. It indicates we are running out of resources. How should I confirm the resources are inadequate? I know we have commands like vmstat & iostat which displays... (3 Replies)
Discussion started by: videsh77
3 Replies

8. UNIX for Dummies Questions & Answers

Device Timeouts on Unix Server

Hi I am brand new to the forum I have very limited understanding of unix, but am very computer literate. At work we have a unix server which has been the bane of our lives. We have stopped being able to access the network drives and the screen has lots of device timeouts. I have learned how to do... (1 Reply)
Discussion started by: scovell01
1 Replies

9. Cybersecurity

UNIX Network timeouts

Hi, can anyone point me in the right direction regarding a UNIX setting that determines when a network connection will timeout? I am getting network timeouts and I would like to know if there is a setting in UNIX 11i OS that I can modify to increase the time limit. Thank you (4 Replies)
Discussion started by: Allano
4 Replies
Login or Register to Ask a Question