当前位置: 技术问答>linux和unix
怎样重定向从inetd得来的socket号?
来源: 互联网 发布时间:2015-10-20
本文导语: 本人是菜鸟,可能问的问题会让大虾们觉得可笑,请见谅! 本人现在有一个telnetd程序。这段程序直接将socket号赋值为0:net=0; 然后recv(net,...),send(net,....) 看到网上有介绍讲inetd是将socket对应到了标准输入输出。上面的...
本人是菜鸟,可能问的问题会让大虾们觉得可笑,请见谅!
本人现在有一个telnetd程序。这段程序直接将socket号赋值为0:net=0;
然后recv(net,...),send(net,....)
看到网上有介绍讲inetd是将socket对应到了标准输入输出。上面的0就是标准输入,那应该是inetd将socket对应到了标准输入才对啊。
如果inetd创建了多个socket,每个都对应到了0,那么这些socket怎样区分?
现在困扰我的就是怎样将一个inetd创建的socket重定向到另一个socket(就是将这个socket的输入输出都重定向到另一个进程的socket接收里面)。他们的socket都是0,我怎么使用他们?我想做的效果如下图:
将
oldfd -> 文件表项1 -> ...
newfd -> 文件表项2 -> ...
变成
oldfd -> 文件表项2 -> ....
问题是现在oldfd 和 newfd都是0。。。
怎么实现上面这个图?
本人现在有一个telnetd程序。这段程序直接将socket号赋值为0:net=0;
然后recv(net,...),send(net,....)
看到网上有介绍讲inetd是将socket对应到了标准输入输出。上面的0就是标准输入,那应该是inetd将socket对应到了标准输入才对啊。
如果inetd创建了多个socket,每个都对应到了0,那么这些socket怎样区分?
现在困扰我的就是怎样将一个inetd创建的socket重定向到另一个socket(就是将这个socket的输入输出都重定向到另一个进程的socket接收里面)。他们的socket都是0,我怎么使用他们?我想做的效果如下图:
将
oldfd -> 文件表项1 -> ...
newfd -> 文件表项2 -> ...
变成
oldfd -> 文件表项2 -> ....
问题是现在oldfd 和 newfd都是0。。。
怎么实现上面这个图?
|
首先能肯定的是socket能在进程间传递并使用。
我不是很明白你的意思。其实分成两步走也行,先利用socket传递数据,然后把数据通过
write(0,buffer,buffersize);
写,和重定向效果一样,有什么问题吗?
我不是很明白你的意思。其实分成两步走也行,先利用socket传递数据,然后把数据通过
write(0,buffer,buffersize);
写,和重定向效果一样,有什么问题吗?
|
dup or dup2
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。