当前位置:  技术问答>linux和unix

telnet服务器把标准输出重定向到socket,传递给客户端再输出到屏幕

    来源: 互联网  发布时间:2017-03-07

    本文导语:      如题,我在用c语言实现telnent的服务器和客户端,现在服务器可以收到从客户端传送过来的命令,成功执行完命令以后,我想把执行的结果重定向到socket,并且通过socket传递给客户端,在客户端把结果输出到屏...

    如题,我在用c语言实现telnent的服务器和客户端,现在服务器可以收到从客户端传送过来的命令,成功执行完命令以后,我想把执行的结果重定向到socket,并且通过socket传递给客户端,在客户端把结果输出到屏幕。有人教我怎么把输出结果通过socket传递到客户端并输出吗,万分感谢!

部分代码:
if (!fork())   //fork一个子进程处理从客户端收到的命令
{
//" use socket for stdin, stdout and stderr "
dup2(new_fd, 0);
dup2(new_fd, 1);
dup2(new_fd, 2);
//" change to the work directory "
chdir(dirroot);
//" run the shell commond of transmission from client "
char commPath[MAXBUF + 1]; 
sprintf(commPath, "/bin/%s", buf);
execl(commPath, buf, (char *)NULL);
}
在这已经可以成功在服务器端运行命令了。
现在已经重定义到socket了,如何传递给客户端呢?

send(new_fd, NULL, strlen(NULL), 0);  //这样吗???

在客户端如何接受并在屏幕上显示结果呢?

在线急等


|
服务器:
dup2(sockfd, STDOUT_FILENO);

客户端:
read(sockfd, buffer, sizeof(buffer));
printf("%s", buffer);

这样就可以,当然具体细节要处理。

|
已经重定向到socket了,那执行程序就可以了,它会自动把输出信息发送到与客户端的socket连接中
不用自己再调用send了

客户端正常读取socket中的内容就行了,read或recv

|
recv(fd, ...)
printf()

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • CentOS安装Telnet,以root用户登陆Telnet以及CentOS的各种终端解释
  • 求解! telnet默认是远程登录,用的telnet协议,但telnet到25 110等端口时用的什么协议呢?
  • Windows下telnet成功、Linux下telnet失败?
  • telnet,xinetd服务都已打开,就是无法用别的电脑telnet到我的LINUX
  • telnet不出去,别的机子却可以telnet进来,什么原因?
  • 新装的9.0,可是telnet却没开,请问怎么开telnet服务
  • fork之后,在execvl启动telnet,如何杀死该telnet进程?
  • 如何在Sco OpenServer上设置只准别的机telnet进来而不准从本地telnet到别的机?
  • 如何启动telnet服务?也就是别人能telnet到我的机器上来?
  • 用linux作telnet localhost怎么root自己都上不去?另外,装了firebird的bbs,怎么telnet看不见啊?
  • redhat linux7.3下怎么启动telnet服务啊???好让我客户可通过telnet访问!!!
  • 请问linux下不用系统自身telnet,怎么编程实现telnet,仅限c/c++
  • red hat linux7.2 能telnet 自己,别人telnet 不进来,为何?
  • 我安裝linux時忘了安裝telnet,現在系統裝好了之後怎麼再裝telnet阿?
  • SCO UNIX如何配置telnet服务可以使windows用户通过telnet登陆?
  • 我用telnet登陆到linux下运行了一个java程序,在关闭了telnet后怎么能让这个java程序继续执行
  • 我用telnet登陆到linux下运行了一个java程序,在关闭了telnet后怎么能让这个java程序继续执行,请高手指点一下
  • a 请问怎样查看服务器上的telnet进程,及远程telnet进程的ip
  • 网络问题: 两台相同的Linux主机a,b;从a 可以telnet 到 b ,从b 可以ping 通 a ,但从b不能telnet a
  • 如何用telnet工具进行远程登录,redhat7.2,如何从LINUX增加一个telnet用户,如何远程登录,并控制计算机,高人请详细写明命令,多谢!!!
  • 能ping通,但是telnet,ftp不上去,本机能telnet上去,求解释?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3