Hi everyone. I think I am posting this question in the right forum. If not, please move it appropriately.
I am building a C# application (or, more accurately, have already built) which can be thought of as an IRC-like chat room. A user runs my program in "server" mode and starts a lobby, accepting incoming connections on a certain port. Other users start my program in "client" mode, and then connect to the lobby directly using the host's IP address and port.
The problem is, of course, port forwarding. There are good guides at portforward.com and the like, I understand, but I'm unsure of a few things. Namely, what about those people who would like to host a server and are on, say, a university network? Or what about those who are hooked up to a DSL modem or something where port forwarding is difficult or not possible? I have a friend in particular who is using an old cable box, and it does not look possible for him to host a lobby without going to a store and buying a router (which would, of course, limit the appeal of my program in the real world if this is a common problem).
I guess what I'm asking here is, is there a situation where a certain person simply will not be able to host, because he can't set up port forwarding properly due to restrictions at university or the like? I actually don't know how difficult it is to set up port forwarding in these cases, since I get my internet from a local provider, and we use a router to send it to all of our home machines (i.e., port forwarding is easy for me). I don't imagine someone who lives in a university dorm has the same luxury.
I should also specify that running a version of the program on a permanent server and have everyone connect to it, like IRC does, is not an option for me. I need to be able to connect peer-to-peer like this. Thanks for any help!