telnet机制(取自unix环境高级编程)

来源:互联网 发布:mac os 无法验证 编辑:程序博客网 时间:2024/06/15 20:39

telnet 机制;

     1:在自己终端上,该程序读终端,然后写到网络连接上,同时读取网络连接,同时将所得数据写到终端上。

     2:在网络连接的另一端,telnetd守护进程读用户在终端上键入的内容,将其送给shell,telnetd将执行用户键入命令,产生输出通过telnet命令送回给用户。

telnet命令有两个输入,两个输出。两个输入中都不能使用阻塞,因为不知道哪一个输入有我们需要的数据。

      办法逐渐改进:

a: fork两个进程,每个进程处理一条数据通路。

        b:进程开销大,改为两个线程,但是两个线程需要考虑同步等,复杂度也不低。

        c:一个进程使用非阻塞I/O读取数据,然后采用轮询机制。但是轮询的时间等待定。而且多任务的时候这种方法不是太好。

        d: 异步I/O.进程告诉内核,描述符准备可以进行I/O,用一个信号通知内核,内核接收到信号时,无法确定是哪一个的,所以需要用轮询机制判定。

        e:较好的技术为使用I/O多路转换,大概思想是:先构造一张有关描述符的列表,然后调用一个函数,直到这些描述符中的一个已准备好进行I/O,该函数才返回。

     

原创粉丝点击