I've looked at the
thread mentioned in your signature; I think you haven't gotten any help here because it's obviously not a
Java problem -- although if you pared your code down to one very small example and described your problem with regards to that, perhaps somebody might have something to say.
One thing that I want to say, although it's very possible that you already realize this, is that a machine with a dynamic IP really can't provide a service; no other machines would be able to find it, as its address may change from day to day (depends on the ISP, of course.)
Another thing: I'm not sure what your set-up looks like. You mentioned a LAN, so there are presumably more than one machine. If you've got a NAT router -- i.e., a box that connects to your ISP on one side, and all your computers on the other, then the IP address assigned by your ISP belongs to that NAT box, on the ISP side. The addresses "behind" the NAT box are invisible to the Internet at large; they're "make-believe", as it were. All that machines on the Internet will see is the NAT box's address; it's the NAT boxes job to figure out which internal machine packets from the Internet are intended for and different NAT boxes have different features so that this can be done in different ways. If your ISP assigns a dynamic address to the NAT box, and then the NAT box assigns dynamic addresses to your computers -- well, no wonder you can't get your chat server to work.
If you already know all the stuff in the paragraph above, then great. If you don't, but you suspect it might be related to your problem, then
you should either find a local networking guru to explain it further, or maybe get a book on LANs.