C# socket服务端的端口有关问题

C# socket服务端的端口问题
刚开始接触socket,从网上下载了例子来看,有些不明白,期待大神解惑。
服务端的端口自定义设置的的是9999,这个端口是虚拟的吗? 一般添加端口不都是需要到防火墙添加入站吗?但是我启动服务后,去防火墙看了并没有找到9999这个端口,奇怪的是客户端居然能够正常连接访问服务端,这是为什么呢?是不是说明9999这个端口是临时的,虚拟的?

------解决思路----------------------
如果防火墙启用,且没有放开9999端口,
那么从其他机器肯定是无法访问的
在本地测试不说明问题
------解决思路----------------------
防火,把自己和外部隔离开。如果你的客户和服务都在墙内,就没有过防火墙这一说。

另外,Windows的防火墙可以按端口来设置,也可以按程序/服务等等来设置,看不到9999添加端口,不见得没有9999就一定被阻断。
------解决思路----------------------
引用:
Quote: 引用:

防火,把自己和外部隔离开。如果你的客户和服务都在墙内,就没有过防火墙这一说。

另外,Windows的防火墙可以按端口来设置,也可以按程序/服务等等来设置,看不到9999添加端口,不见得没有9999就一定被阻断。

本机和虚拟机不通ip地址,应该有防火墙阻隔吧
另外,9999端口如果不在入站规则中体现,那应该在哪里能体现出来呢?

换两台电脑测试
------解决思路----------------------
端口当然是虚拟的,从1-65535,防火墙不会让端口打不开,而是让连接失败,
关于楼主防火墙的情况有待检查,一般开启时从其他电脑是连不上的未设置例外的端口的.
------解决思路----------------------
引用:
Quote: 引用:

如果防火墙启用,且没有放开9999端口,
那么从其他机器肯定是无法访问的
在本地测试不说明问题

我是在虚拟机上打开服务端的,且防火墙是开启状态。在本机用客户端连接,能连接成功。这样有问题吗。

1.
从客户端能不能访问服务器某个端口
使用telnet命令就可以确认
telnet yourip(目标机器ip) 9999;
server上的端口是不是打开 
使用 netstat  -an 
2.
能不能过防火墙,取决于防火墙设定的规则