首页 新闻 会员 周边

C++获得进程对应的临时端口号的方法?

0
悬赏园豆:50 [待解决问题]

C++获得进程对应的临时端口号的方法?

就是控制台命令行netstat -nao
命令执行后的ip地址后面的端口号,怎么用函数获得指定的进程或程序的端口号?注意不是PID,而是系统临时分配的端口号!!!
怎么用函数获得?

好望角的那只鸵鸟的主页 好望角的那只鸵鸟 | 初学一级 | 园豆:152
提问于:2018-12-10 20:15
< >
分享
所有回答(1)
0

利用管道去获取cmd输出的信息:

define _CRT_SECURE_NO_WARNINGS

include <stdio.h>

include <stdlib.h>

include <string.h>

int GerResurt(char* cmd, char* result);
int main()
{
while (1)
{
char cmd[50] = “netstat -nao”;
char result[4000] = { 0 };
scanf("%s", cmd);
GerResurt(cmd, result);
printf("%s", result);
}
system("pause");
}
int GerResurt(char* cmd, char* result)
{
char buffer[128];//缓冲区
FILE* pipe = _popen(cmd, "r");//创建一个管道
if (!pipe)return 1;//管道创建失败
while (!feof(pipe))//函数feof()在到达给出的文件流的文件尾时返回一个非零值
{
if (fgets(buffer, 128, pipe))//获取每行数据到buffer中
strcat(result, buffer);//函数将字符串str2 连接到str1的末端,并返回指针str1.
}
_pclose(pipe);//关闭管道
return 0;
}

获取到输出cmd之后对输出的内容进行一些处理就可以了。

Timothy-Lau | 园豆:351 (菜鸟二级) | 2018-12-18 09:46

输入的是什么啊?你能给我说详细点吗

支持(0) 反对(0) 好望角的那只鸵鸟 | 园豆:152 (初学一级) | 2018-12-18 11:05

@永远的码农: 输入你需要执行的cmd命令,比如netstat -nao,在Main函数里面的cmd变量就是输入你要执行的cmd命令,char cmd[50] = "netstat -nao";
利用GerResurt函数,把执行的netstat -nao命令的结果,通过result返回回来。
再通过result的一些处理,把你想要的端口取出来。

支持(0) 反对(0) Timothy-Lau | 园豆:351 (菜鸟二级) | 2018-12-18 11:09

@码农小易: 我试了没有反应啊

支持(0) 反对(0) 好望角的那只鸵鸟 | 园豆:152 (初学一级) | 2018-12-18 11:12

@永远的码农:

可以的没问题。
你可以在if (fgets(buffer, 128, pipe))语句处设断点,然后调试看看。
buffer是可以接受到的。
再处理一下buffer,把你想要的端口号取出来。

define _CRT_SECURE_NO_WARNINGS
include <stdio.h>
include <stdlib.h>
include <string.h>
int GerResurt(char* cmd, char* result);
int main()
{
while (1)
{
char cmd[50] = { 0 };
char result[32767] = { 0 };
scanf("%s", cmd);
GerResurt(cmd, result);
printf("%s", result);
}
system("pause");
}
int GerResurt(char* cmd, char* result)
{
char buffer[128];//缓冲区
FILE* pipe = _popen(cmd, "r");//创建一个管道
if (!pipe)return 1;//管道创建失败
while (!feof(pipe))//函数feof()在到达给出的文件流的文件尾时返回一个非零值
{
if (fgets(buffer, 128, pipe))//获取每行数据到buffer中
strcat(result, buffer);//函数将字符串str2 连接到str1的末端,并返回指针str1.
}
_pclose(pipe);//关闭管道
return 0;
}

支持(0) 反对(0) Timothy-Lau | 园豆:351 (菜鸟二级) | 2018-12-18 12:44
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册