我正在尝试开发一个 traceroute 服务器,它接受来自 telnet 客户端的参数执行 traceroute 并将信息发送回 telnet 客户端。我正在从服务器上的 telnet 客户端接收参数,例如traceroute www.google.com
,但是当我尝试执行它时,它给了我一个奇怪的错误:
: Name or service not known
' on position 1 (argc 1)line arg `www.google.com
我发现奇怪的是,当我在服务器端硬编码命令时它工作正常,当我在服务器端接收命令并将其打印出来时,它也工作正常。但是,在字符数组中接收到的相同命令无法执行并出现上述错误。
这是我的代码:
int main() {
int sockfd,new_fd;
char client_arg[100];
//Create a socket and establish the connection
if (recv(new_fd,client_arg,100,0)== -1)
perror("recv");
printf("%s\n",client_arg); // prints traceroute www.google.com
system(client_arg);
return 0;
}