I'm relatively new at visual basic but i've lost several nights of sleep working out how it works. I've come across a problem that I can't figure out. I'm making a program with winsock using TCP/IP.

Problem 1: I'm behind a router. here: http://www.vbforums.com/showthread.p...hlight=connect they talk about changing your router settings so that certain ports are forwarded to certain computers. However, I'm making a small chat client for practice and I don't think my friend (half of which are also behind routers) will go for having to change thier router settings. is there another way to do this without changing router settings?

problem 2: it seems my winsock connection will only connect once. for instance, if i'm connected to a computer, then i disconnect (winsock1.close), whenever i try to reconnect, it won't let me. I have to restart both clients in order to connect to it. any guesses as to what i'm doing wrong here?

problem 3: this is really more a nuisance than a problem. is there a way to get past the catch 22 of "you need to connect to send an ip, you need to send an ip to connect" while using a direct connection between two computers who's ip is dynamic?

i'm extreamly thankful for any replies. i've lost 2 nights of sleep on this problem alone and i finally decided to get help.
again, thank you,

daytripper