/* Linux下端口的划分使用是由IANA(Internet Assigned Numbers Authority,因特网已分配数值权威机构)维护的,端口号被划分为3个段。

1、0~1023,(10)这些端口有IANA分配和控制,可能的话,相同端口号就分配给TCP、UDP和SCTP的同一给定服务。如80端口被赋予web服务

2、1024~49151,这些端口不受IANA控制,不过由IANA登记并提供他们的使用情况清单,已方便整个群体。相同端口号也分配给TCP和UDP的同一给定服务。如6000~6003端口分配给这两种协议的X Window服务器。

3、49152~65535,(16)动态端口。IANA不管这些端口,就是我们所说的临时端口。(49152这个魔数是65536的四分之三)。
*/
#include 
using namespace std;
int main()
{
	cout << "pow(2,n)" << endl;
	for(int i=0,tmp=1;i<20;i++)
	{
	cout< 
  

前提:首先你必须知道,端口不是独立存在的,它是依附于进程的。某个进程开启,那么它对应的端口就开启了,进程关闭,则该端口也就关闭了。下次若某个进程再次开启,则相应的端口也再次开启。而不要纯粹的理解为关闭掉某个端口,不过可以禁用某个端口。

  1. 可以通过"~$ netstat -anp" 来查看哪些端口被打开。

  (注:加参数'-n'会将应用程序转为端口显示,即数字格式的地址,如:nfs->2049, ftp->21,因此可以开启两个终端,一一对应一下程序所对应的端口号)

  2. 然后可以通过"~$ lsof -i:$PORT"查看应用该端口的程序($PORT指对应的端口号)。或者你也可以查看文件/etc/services,从里面可以找出端口所对应的服务。

  (注:有些端口通过netstat查不出来,更可靠的方法是"~$ sudo nmap -sT -O localhost")

  3. 若要关闭某个端口,则可以:

  1)通过iptables工具将该端口禁掉,如:

  "~$ sudo iptables -A INPUT -p tcp --dport $PORT -j DROP"

  "~$ sudo iptables -A OUTPUT -p tcp --dport $PORT -j DROP"

  2)或者关掉对应的应用程序,则端口就自然关闭了,如:

  "~$ kill -9 PID" (PID:进程号)

  如: 通过"~$ netstat -anp | grep ssh"

  有显示: tcp 0 127.0.0.1:2121 0.0.0.0:* LISTEN 7546/ssh

  则: "~$ kill -9 7546"

  (可通过"~$ chkconfig"查看系统服务的开启状态)

http://www.3lian.com/edu/2015/08-06/236829.html