知识点:
c标准库中的随机:
srand();
rand();
知名端口:0-1023
动态端口:1024-65535
netstat -an | grep :xx
查询端口xx是否可用
代码实现:
#include <stdio.h>
#include <stdlib.h>#define PORT_START 1025
#define PORT_END 65534
#define BUFF_SIZE 256
main()
{
int i_random_port;
time_t t;
char psz_port_cmd[BUFF_SIZE];
srand((unsigned)time(&t));
do
{
i_random_port = rand() % (PORT_END - PORT_START + 1) + PORT_START;
sprintf(psz_port_cmd, "netstat -an | grep :%d > /dev/null", i_random_port);
}while(!system(psz_port_cmd));
printf("port=%d\n", i_random_port);
}