On Wednesday 30 November 2005 12:54, STYMA, ROBERT E (ROBERT) wrote:
> Hello,
> I am playing around with writing a program to bind to socket
> / port in my
> machine. Often time, I got the message:
> bind(): Address already in use
>
> So my question is, how do I find out which process bind to a
> certain port
> number ?
The command lsof run as root will tell you a lot of things including
who is bound to a port.
For example:
lsof | grep 2345
Great. Thanks.
Note that on various flavors unix, I have seen the "already in
use" message
for a short time after a program exits. That is, start a program which
listens on a certain port, exit the program, immediately restart the
program. A quick test says FC4 does not seem to do this.
The reason I am asking is because I am seeing exactly this on FC 4. It seems
that after exiting, the program does not release the port immediately, and
hence restarting the program get the "already in use" message, while 'ps aux
| grep progname' shows nothing. Maybe I am doing something wrong, ie. the
program does not release the port cleanly on exit or something like that ?
I'm not sure...
Thanks a lot for the answer though .
RDB