亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標題: 高手救命,實在沒辦法了,毫無頭緒~ [打印本頁]

作者: ┏.璇轉(zhuǎn)    時間: 2006-09-07 17:12
標題: 高手救命,實在沒辦法了,毫無頭緒~
我要寫一個帶EXPECT模塊的Server程序  現(xiàn)在一點頭緒也沒有 高手能不能幫我列一個思路
以及程序里所需要用到的參數(shù) 我剛接觸Perl 還沒有憑空寫過程序 沒有頭緒啊

程序要求是這樣的:

受到前臺發(fā)來的socket消息
判斷前4位是否為quit或cmds
如果不是,則丟棄

      如果是cmd:,則向expect輸出$cmd
                    獲取的結(jié)果,socket發(fā)回給前臺
                  同時記錄到日志文件/slview/nms/logs/webterm/yyyymmdd/ip.log
        
         如果是quit,則關閉expect
                           同時記錄關閉連接信息到日志文件/slview/nms/logs/webterm/yyyymmdd/ip.log


急啊,明天要交工啦~~~~


[ 本帖最后由 ┏.璇轉(zhuǎn) 于 2006-9-7 17:48 編輯 ]
作者: ┏.璇轉(zhuǎn)    時間: 2006-09-07 17:14
不用去管里面的亂七八糟的變量,我只是想知道結(jié)構(gòu)就行,就是要用到的函數(shù)和參數(shù)的結(jié)構(gòu),我也不知道我說的對不對問的對不對,總之我已經(jīng)抓狂了,弄了好幾天根本沒辦法~~
5555555555555
作者: ┏.璇轉(zhuǎn)    時間: 2006-09-08 09:21
標題: 救星救星快來呀~~
期待期待啊~~~~  救星在哪里.....................
作者: dajun    時間: 2006-09-08 09:22
你的意思是建立一個服務器程序,他接收客戶端用expect發(fā)了的消息,判斷一下,再返回些數(shù)據(jù)?
這樣的話很簡單了。
作者: ┏.璇轉(zhuǎn)    時間: 2006-09-08 09:23
要求好象是 expect模塊在server里面  而不是在client里面  怎么辦呀?
作者: dajun    時間: 2006-09-08 09:49



  1. # cat so.pl
  2. #!/usr/bin/perl

  3. use strict;
  4. use IO::Socket::INET;

  5. my $sock = IO::Socket::INET->new(
  6.                         Protp           => 'tcp',
  7.                         LocalPort       => '7890',
  8.                         Type            => SOCK_STREAM,
  9.                         Listen          => '10',
  10.                         Reuse           => '1',
  11.                         Timeout         => '5',
  12.                         );

  13. if (not defined $sock) {
  14.         print "socket error!\n";
  15.         exit(1);
  16. }

  17. while(1) {
  18.         my $buf = "";
  19.         my $c;
  20.         my $ret = 0;
  21.         if (accept($c, $sock)){
  22.                 $ret = read($c, $buf, 4);
  23.                 #if $ret ....
  24.                 if ($buf =~ /^cmds/){
  25.                         print "I got cmds, I can do expect cmds here\n";
  26.                 }
  27.                 elsif ($buf =~ /^quit/){
  28.                         print "I got quit, I can send quit to expect here\n";
  29.                 }
  30.         }
  31. }


復制代碼


# perl so.pl
I got quit, I can send quit to expect here
I got cmds, I can do expect cmds here
I got quit, I can send quit to expect here


其他的你自己加吧,而且這個代碼也不完善
作者: ┏.璇轉(zhuǎn)    時間: 2006-09-08 09:56
啊,首先謝謝您~~辛苦了 幫我寫了一個程序
但是有個問題,就是我如果想把expect模塊加進去,改怎么辦呢?

    基本思路是這樣:   就是我做一個類似聊天室的網(wǎng)頁, 做這個的目的就是關于登陸方面,用戶輸入用戶名和密碼 通過expect模塊來達到登陸的目的.

其他的您寫的我基本看的懂了,就剩一個問題就是如果加expect模塊呢?
作者: dajun    時間: 2006-09-08 10:11
那你就研究一下expect模塊或者用open來調(diào)用系統(tǒng)的expect吧,
然后把得到的結(jié)果再write到socket。
作者: ┏.璇轉(zhuǎn)    時間: 2006-09-08 10:31
好的,謝謝你

最后一個問題,關于您寫的程序,  程序里面的  my $buf = "";     分別代表什么呢?
                                                             my $c;
                                                             my $ret = 0;
作者: ┏.璇轉(zhuǎn)    時間: 2006-09-08 10:43
$buf為接收到的前臺信息,   $c是客戶端的套接字,  對么?

$ret=0;是什么意思就不是怎么太懂了...   請指教...
作者: dajun    時間: 2006-09-08 11:09
$buf為服務端的一個臨時變量,“”表示聲明的聲明而且內(nèi)容為空,就像你的錢包等你的報酬一樣
$c 為客戶的socket,服務端通過他來讀寫數(shù)據(jù);
$ret 為讀的數(shù)量,聲明時賦值為0,read后他會被修改,主要用于判斷讀操作的正確性和讀到的長度
作者: ┏.璇轉(zhuǎn)    時間: 2006-09-08 11:41
高~~ 實在是高~~   豁然開朗,剩下的問題就是我自己研究如何加入expect
    真是太感謝了,麻煩你了~~~




歡迎光臨 Chinaunix (http://72891.cn/) Powered by Discuz! X3.2