Very hard to discuss this without a clearer picture of what you wish to accomplish. Let's imagine you wanted to make a simple chat server though, a common sample scenario for learning Winsock server programming.
The basic idea is to use a Winsock Control array. You listen for connections on one Control, and when ConnectionRequest events arrive, you assign the incoming connection to a unique Winsock Control instance from your array. This is pretty well documented in the VB help files, but many people find the information given here pretty opaque without an intact example. The web is crawling with these however ;-) so you might try a search for something like "VB chat server sample."
Normally the RemoteHost and RemoteHostIP properties might be interrogated by a Winsock server, but only set by a client in order to say what server you want to connect to. A typical Winsock client is pretty easy to construct, and there are a plethora of samples of these about as well.
Perhaps I am missing your point however.
You have "a small network." Doesn't each machine already HAVE an IP address? Why are you looking for a DHCP server? If your DHCP server assigns dynamic addresses, you won't be able to connect by IP address anyhow - the addresses are "dynamic" (thus the name) and subject to change over time. Most likely you will connect using RemoteHost instead, and on most Windows networks you'll be able to use the machine names in your workgroup or domain, without mucking with HOSTS files or anything of the kind.
In case I am STILL way off-base above, and you really want a DHCP server, there are two easy choices:
* Run Internet Connection Sharing (ICS) or a 3rd-party alternative on one Windows machine. ICS is a DHCP server.
* Buy a low-cost "home cable/DSL router" that can act as a DHCP server. Many wireless access points have this functionality as well, if you are using a wireless LAN.
If we're still missing your point, please try clarifying your question.