我必须做一个运行连接telnet的脚本,并向服务器发送两个号码。我确信服务器工作,因为如果我直接从telnet发送值一切正常。如果我运行的脚本完全按照我的方式执行某些操作无效。我可以看到客户端已连接,但我在屏幕上看不到应该通过telnet发送的号码。
这里的脚本(非常简单):
{ echo "3"; echo "6"; sleep 1; } | telnet localhost 8887
和部分服务器:
server.sin_family = AF_INET;
server.sin_addr.s_addr = htonl(INADDR_LOOPBACK);
server.sin_port = htons(8887);
...
//bind and listen
...
printf("connesso\n");
//Riceve un emssaggio dal client
for(i=0; i<2;) {
bzero(client_message,2000);
if((read_size = recv(client_sock , client_message , 2000 , 0)) > 0)
{
//Rimanda indietro il messaggio al client
write(client_sock , client_message , strlen(client_message));
numeri[i]=atoi(client_message);
i++;
}
}
...
// some check
...
if(numeri[1] % numeri[0] == 0) {
printf("multiplo\n");
}
else {
printf("negativo\n");
}
所以,我应该在服务器上看到一些消息:
但是我只看到了&#34; Connesso&#34; ...就像我什么都没得到。显然我看到&#34; connesso&#34;在我运行脚本之后。
有什么想法吗?
感谢名单
答案 0 :(得分:0)
此代码可以使用
{ echo "3"; echo "6"; sleep 1; } | telnet localhost 8887
我是如何测试的?安装netcat。然后从一个终端
nc -l 8887
从另一种终端类型
{ echo "3"; echo "6"; sleep 1; } | telnet localhost 8887
您将在运行nc的第一个终端中看到数字3和6