IMHO, there is BIG problem, Layer. even this way can be done, It not tcp stack concept. maybe it's problem about a chain of responsibility. If I work this, I would build a listening process, and dispatch some work to different worker do details.
Regards, 2007/8/20, Maarten Bosteels <[EMAIL PROTECTED]>: > > Hello all, > > I am witnessing some very weird behavior: two processes listening on the > same TCP port on the same machine. > using Windows XP Professional > > I thought this might be possible because my portable is multi-homed (wired > + > wireless network) ? > But I disabled the wireless network and it still works. > > 1st process = org.apache.mina.example.chat.Main > 2nd process = org.apache.mina.example.chat.SpringMain > > Running two instances of org.apache.mina.example.chat.Main gives the > expected "Address already in use" > but it seems I can start as many instances of SpringMain as I want (I > tried > upto 6) > > Ok, this behavior is clearly a consequence of setting reuseAddress=true on > the SocketAcceptor > but I have never witnessed this behavior on linux. > > Does anybody know whether this is a documented feature on Windows ? > > C:\netstat -na | grep 1234 > TCP 0.0.0.0:1234 0.0.0.0:0 LISTENING > TCP 0.0.0.0:1234 0.0.0.0:0 LISTENING > TCP 127.0.0.1:1234 127.0.0.1:1379 ESTABLISHED > TCP 127.0.0.1:1379 127.0.0.1:1234 ESTABLISHED > (unfortunately netstat on windows doesn't have the -p option to show > process > id of listening process) > > Changing localAddress from ":1234" to "127.0.0.1:1234" or " > 192.168.0.5:1234" doesn't make a difference. > > Clients seem to connect to the process that was started last. > And when that server stops, new connections are accepted by an 'older' > server. > > Maarten > -- 致敬 向秦贤