I have 2 machines on a router, one is a desktop the other is a laptop. The desktop can see itself and the laptop under Network, however, the laptop sees itself but NOT the desktop. Both have network discovery and file and printer sharing enabled for both home and public networks, both can ping eachother, I can use the laptop to access the desktop's FTP even though it doesn't see it on Network, but all in all I can't get its NAME to appear in the Network, so I always have to use its IP.
There are three kinds of networks also: home, work, and public. You also might as well turn off the windows firewall at least for testing purposes and then reboot each machine.
Are you using any printers and can I verify which version of Windows 7 you are using. Also any antiviruses?
It is your router, the DNS Servers on most home routers is crap. It doesn't hold A Records or CNAMES and the TTL on records is also crap, mostly because it is a simple solution not anything meant to be complicated. Another reasons is that in workgroups there is no hierarchy of browse masters like in a domain. In a domain there is a DC that also has DNS Records making all computers in the organization known as long as they are on the same network. So in workgroups it is hit and miss as far as identifying other computers on it.
I just tried it over Hamachi and set up a virtual network between them the laptop finally saw the desktop. I did a portscan from the lap on the desk's WAN IP and then its hamachi IP and both had the same ports open so it's not like it gets more over VPN. So then why is VPN working? Anyways I can't keep using Hamachi as a solution since it's 100x as slow as a WAN transfer.
because hamachi's servers maintain their own DNS records. If you are having issues with TCP/IP not working install IPX. It is a router/DNS issue if you can ping the IP but not the name.