Hello,
I'm trying to write a small c application to test a tcp port. This works fine for the most part but the default timeout on the connect is very long. I have been reading many posts but and it looks like I need to set the socket to be non-blocking and poll for a result. I have been totally unable to make this work.
Does anyone have a quick example on setting up a timeout on a socket connect?
What sort of timeout are you referring to? As I recall, tcp sockets do not have a connection time timeout, that is application level. Are you writing the server or the client? For server bind, you use SOCKOPT_REUSEADDR so you can bind while old connections are still in post connection timeout. After a socket is closed, there is still the possibility that buffered data is yet to be written (controlled by the linger option) or the fin ack may be lost and a second fin will arrive asking for another fin ack, so there is a latent structure for the connection still active for a time.
Assuming that you're implementing a TCP client, you have the following possibilities:
1) The connect() is carried out in a separate thread; another thread implements the timer. Upon timeout, the connect thread can be cancelled since connect() is a cancellation point.
2) You raise a signal when a timer expired to the thread calling connect(). This will cause connect() to be interrupted. Only useful for single threaded program; for multi-threaded program use 1) or 3).
3) You use non blocking socket, see a the snippet below
Then you need to poll() for both read/write events:
Error checking is omitted for your convenient (DISCLAIMER: DON'T do this for production code)
Hi
The clients connect to my server -using port 9130. But no client could connect to my server at this time. I've checked already and this is the result
netstat -Aan|grep -v 127.0.0.1|grep 9130|pg
f10006000abcb398 tcp4 10313 0 10.0.89.81.9130 10.158.70.24.1705 CLOSE_WAIT... (8 Replies)
I been looking for a good guide or some help on how to install and setup TCP-MUX protocol socket on my Solaris 7 servers.
Can anyone point me in right direction of help me ?
Thanks (5 Replies)
I installed a fresh copy of Solaris 7 and present up my ip and domain for my web services but when I try to connect to it I get the following error;
TCPActiveOpen: connect failed tcp/192.168.1.148/7900: 146 (Connection refused).
the port is open in my router but I don't no were to add it in... (5 Replies)
i want to kill a tcp connection by killing its pid
with netstat -an i got the tcp ip connection on port 5914
but when i type ps -a or ps-e there is not such process running on port 5914
is it possible that because i do not log on with proper user account i can not see that process running? (30 Replies)
Hello all,
I have a requirement to read and write to a tcp socket from an HP-UX shell script. I see a /dev/tcp character device on my servers:
crw-rw-rw- 1 root root 72 0x00004f Mar 28 18:37 /dev/tcp
So I believe this is what I should use. The problem is that all the... (2 Replies)
Hello,
Our software is using a TCP socket (AF_INET, SOCK_STREAM) to communicate with an Ethernet device. When we send a message, the message object writes itself in full onto the socket's stream buffer before the software invokes send() from socket.h.
I'm still researching, but have 2... (1 Reply)
Hi all,
I'm writing a socket program which sends a structure from one machine to another. When I run my client first time it runs well, however after the first time I couldn't receive all the data inside the structure (it is like, half of the array is received and the other half is not set). I... (1 Reply)
I have what appears to be a unique socket problem, although admittedly my tcp/ip programming experience is relatively limited.
I have a AIX server process using TCP/IP berkely sockets, and a Windows (C#) process. The windows process takes input from a user and sends a message to the Unix... (1 Reply)
If I do a netstat -a I can see all the sockets currently open, is there a way that I can tell which application is holding open these sockets ? (3 Replies)
Hello there chaps.
First of all, i'm no TCP/IP-wiz, so forgive me if this is a stupid question.
I've been messing around with filetransfer using sockets, and there is one thing that confuses me.
This is how it's set up:
A server app listens on a port for a client connection.
When it... (3 Replies)