LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 942|回复: 5

关于如何复制套接口描述字和dup2(),请高手指点!

[复制链接]
发表于 2003-7-31 21:38:23 | 显示全部楼层 |阅读模式
小弟最近在写一个socket服务器端程序,想让服务器端的标准输出输出到与客户端的连接上。比方说客户端输入ps时,服务端把输出进程信息的结果反馈给客户端(类似于telnet服务器)。看《UNIX网络编程》卷一上讲的inetd守护程序,其中实现的一步是“子进程把已连接套接口描述字复制到描述字0、1和2,然后关闭套接口。”。看不懂,头都大了(可能是不理解dup2()的 How 和Why)。
望高手指点小弟应该如何做才能实现上面的目的(最好能给个大约的代码),并麻烦解释一下dup2()。
谢谢各位大哥了。
发表于 2003-7-31 22:23:10 | 显示全部楼层
在进行网络编程之前要先了解系统。
先看懂APUE再说。
 楼主| 发表于 2003-7-31 22:38:38 | 显示全部楼层
I'm reading APUE now, but can i read through it in one day?--------I must finish this program in the next two days, that is the deadline.
Thanks a lot.
发表于 2003-7-31 22:46:24 | 显示全部楼层
int dup2(int fildes, int fildes2);
fildes可以就是你要复制的套接字,fildes2就是你想要复制到的文件描述符。
发表于 2003-8-1 19:55:57 | 显示全部楼层
简单来说:
...socket()...
...bind()...
...listen()...
fd=accept(...);
...fork()...
(在子进程中
dup2(fd,0); dup2(fd,1); close(fd);
然后printf()就会输出到socket中,scanf也会从socket输入。
 楼主| 发表于 2003-8-2 11:46:07 | 显示全部楼层
问题已经解决,谢谢各位大哥了:)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表