client app not letting go of socket


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers client app not letting go of socket
# 1  
Old 02-20-2004
client app not letting go of socket

Ok here's the situation

We have an application that our users log into over the network to one of our unix boxes (Solaris 8). I had this situation occur the other day where an user claimed that he totally shutdown the app because it froze up and wasn't able to log back in.

I performed a netstat on the port and I could see that he wasn't getting back in because the original connection (frozen app) was still established and I could see time_waits for the new attempts to login (the time_waits are because we're not allowing the user to log back in because technically he's still logged in).

after a while I saw the ESTABLISHED switch to FIN_WAIT_2, I never seen this state before (can someone explain what it means in laymens terms and give an example of a situation it might occur).

Anyway the user wanted an explanation and I have never seen this before, usually when a user closes the app the connection will drop but this time it stayed established. Is it possible that the session level processes were still running on the Windows 2000 server pc he was using?? even though everything on the desktop said the app was closed??

Anyway, I would greatly appreciate any info you could spare on this situation and also is there a website or reference somewhere that could explain real life situations where certain netstat states would occur??

thanks in advance
# 2  
Old 02-20-2004
The local program did a shutdown() or a close() on the socket in question. This sent a FIN packet to the remote system and put the socket in FIN_WAIT_1. The remote system ACKED the FIN packet and the local system got the ACK. That moved the socket to FIN_WAIT_2.

The idea is that at some point the remote system will close() or shutdown() its side on the socket. When that happens, the remote system will send a FIN. The local system will then ACK that FIN and move the socket to TIME_WAIT.

But if the remote system had a hung program, the remote system's kernel will still ACK the first FIN. Then if the remote system is rebooted, things will hang forever.

FIN_STATE_2 happens a lot when the remote systems are pc's. You must not run netstat very much.
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Programming

Socket dual client/server Linux

I'm trying to make a "dual/server client" (ipv4,ipv6) with sockets in linux but i don't know how to join both codes. I have a dual client ipv4 and ipv6, but i have problems with the server if you notice the only difference between them it's the AF_INET (pf_inet ipv4, and if_inet6 ipv6) and the port... (3 Replies)
Discussion started by: godna
3 Replies

2. Programming

Help needed in my client/server app - Delay in displaying messages from clients.

Ok so this is what I have. I have separate client and server codes. I initially had the server listening and accepting connections from ONE port, and it was working great. Now, what I want to do is, enable the server to listen and accept connections on TWO OR MORE ports , thus, effectively... (2 Replies)
Discussion started by: CrazedMonk
2 Replies

3. Programming

C Socket Client/Server Fork Loop

Hello people. I'm trying to do something like a search engine. Server runs in the background by using ./server & which has data from a textfile stored in an array. Client then runs by using ./client It will then prompt "Search for:" For example, if I searched for Products called Instant... (0 Replies)
Discussion started by: andylbh
0 Replies

4. Programming

socket programing in client server

hei, i want to enter name and read it by client server socket program after checking name validity put the password and check.if ok than server clirnt say correct other wise incorrect. below my code: char name; printf ("Welcome to the server \n"); printf ("Enter user name: \n"); scanf... (1 Reply)
Discussion started by: saiful_911
1 Replies

5. Programming

how can I send and receive data in client server socket programing

char name; printf ("Welcome to the server \n"); printf ("Enter user name: \n"); scanf ("%c", &name); how can client send name to server:what should be the code? int send ( int sid , const char ∗buffer Ptr , int len , int f l a g ) how can client receive ack from... (1 Reply)
Discussion started by: saiful_911
1 Replies

6. Programming

Client socket

Am trying to connect to local machine on port 9102 There is no server application listening on port 9102. if (connect(fd,(struct sockaddr *)&addr, (socklen_t)sizeof(struct sockaddr)) == -1) return -1; cout<<"Connected ,ERRNO:"<<errno<<", txt:"<<strerror(errno); netstat -na |grep... (5 Replies)
Discussion started by: johnbach
5 Replies

7. Programming

Client/Server Socket Application - Preventing Client from quitting on server crash

Problem - Linux Client/Server Socket Application: Preventing Client from quitting on server crash Hi, I am writing a Linux socket Server and Client using TCP protocol on Ubuntu 9.04 x64. I am having problem trying to implement a scenario where the client should keep running even when the... (2 Replies)
Discussion started by: varun.nagpaal
2 Replies

8. UNIX for Dummies Questions & Answers

socket programming : client server IPC

I'm new to socket programming. Have a basic doubt. I have a structure(global) at the server side. I have two different client connecting to the server. Will the changes made by one client on the structure be visible to the other client when it accesses the same client? I'm creating a STREAM... (3 Replies)
Discussion started by: abc.working
3 Replies

9. Programming

UDP socket - can both client and server recv and send

Hi, Am very new to socket programming. When we use UDP sockets to communicate between two processess, will both the client/server socket be able to send/recv ? meaning can sendto()/ recvfrom() be used on both server and client? It could be useful even if anybody provide some link on socket... (1 Reply)
Discussion started by: rvan
1 Replies

10. Programming

client socket read returns 0 bytes

Hi I have apeculiar problem with sockets. I have a shared object for my client program. when I send a request to the server, it is suppose to process and sends back the result string to the client. For the first request, it is working fine i.e. client sends the req. and gets the... (1 Reply)
Discussion started by: axes
1 Replies
Login or Register to Ask a Question