It is entirely possible, and probably has been done to some extent. I'll try looking for some resources for you - right at this minute I'm pretty busy but I just had to reply when I saw this dear subject.
~~Do you know any other languages?~~ (I just woke up, reading your post completely might have been good before starting to reply).. Might be worth it checking out existing code in functional MUDs to get a grasp of how they have done the networking part. I have been out of the MUD scene for some time, but I have been a developer on several during my free time in the past.
I'm assuming you are doing this from scratch, and sadly I'm not familiar with VB myself, but once you get the packages running, there's one key to making a MUD work: heartbeat. Think of it as a fast, turn-based game where the turns switch automatically. Every so and so often your game processes all the input from all the players.
As you are familiar with C++, you could maybe check out stuff like LPMud to see how they have made things work. The libraries used to be availible and easy to get working, and naturally they're all open-source. If my memory serves me right, they use a variant of C called LPC for scripting.
But alas, it has been too many years, I don't really have any up to date information for you, but I'll try to dig something up later today. =)
I've only taken a semester of C++, so far, but I do have quite a few books on the subject lying around. If VB turns out to be a disaster then I suppose I could always try that. I would still really love to at least attempt it in VB, as my main goal with this project is to get some experience with VB doing something that I would find enjoyable.
Regarding your reference to the heartbeat of a MUD, you are saying I should program the application to check all the input from all players in intervals (say, every second or half a second)? Would it be viable to check each connected user's input individually? How big is the performance gap between the two options (if I should even be worrying about performance at this stage)?
I've done some reading and talked to someone ... apparently back in the days of VB 6.0 all network programming was done with WinSock ... now it seems to be done with the System.Net Namespace in VB.Net.
Thank you very much for the reply, I appreciate it.