Here is the guide so i don't have people asking it again and again
A non-dedicated server is what you would use if you just wanted to have a quick game against bots or with friends, it's not very flexible and dissapears when you disconnect from it. And also many people have this problem; you can create it and join but nobody else can. The reason, it's your computer settings, to make it work you need to turn off various firewalls, and open ports, and even then quite a lot of the time it still won't work, therefore rent a dedicated server, (details below)
A dedicated server is better although it means having a separate computer which has to be running for the server to work. To run a dedicated server you need to know a bit about what you're doing and again will still quite often not work if you have controlling anti-virus or firewall programs.
However the best thing to do is to rent a dedicated server from a company as it will be much faster and simpler. I recommend
http://counter-strike.com if you're going to buy one as they're the best company i have used so far
To start a non-dedicated server in css:
Start 'Counter-Strike: Source'
When loaded select 'Create Server'
Set the settings to your preference
Click run and it should work
To start a dedicated server in css:
Start 'Steam'
Select the 'Tools' tab
Select 'Source Dedicated Server'
Install it and run the program, it will need to update and should automatically. Then select your settings and run.
Note. you will need to be connected to the internet to run a server.
Also when you install the ded. server it will need to download the files for it as they are not already on computer, therfore you need the interent to do that as well.