Discussion Board

Results 1 to 8 of 8
  1. #1
    Registered User asparov's Avatar
    Join Date
    Nov 2007
    Posts
    8
    Привет! Вообщем я пишу приложение на Symbian C++ и у меня на Apache сервере есть следующий php файл

    <?php
    function file_write($data, $fname = "buffer.txt")
    {
    $script_path = $_SERVER['argv'];
    $script_path = $script_path[0];
    $pinfo = pathinfo($script_path);
    $dir_path = $pinfo['dirname'];
    //$fName = $pinfo['basename'];
    //$ext = $pinfo['extension'];
    $fp = fopen($dir_path . '/' . $fname,"a");

    fwrite($fp,$data);
    fclose($fp);
    }
    $gps_data = "";
    $gps_data = fread(STDIN,1024);
    $gps_data = fread(STDIN,1024);
    if(strpos($gps_data,'$')!==false && strpos($gps_data,'!') !== false && (strpos($gps_data,'!') == strrpos($gps_data,'!')))
    {
    file_write($gps_data . "\r\n");
    }
    else {
    if(strlen($gps_data)>0)
    {
    $spos = strpos($gps_data,'!');
    $epos = strrpos($gps_data,'!');
    if($spos != $epos)
    {
    $gps_dtt = explode('!',$gps_data);
    foreach($gps_dtt as $v)
    {
    file_write($v . "\r\n");
    }
    }
    }
    }

    ?>

    Т.е. насколько я могу судить (эту пхпэшку писал не я) данные принимаются через $gps_data = fread(STDIN,1024); И чо то я никак не могу понять как мне ему передать данные?

  2. #2
    Regular Contributor b_monkey's Avatar
    Join Date
    Nov 2006
    Posts
    60
    ну, даже не знаю каким образом тут апач или ещё что то ... но наверняка HTTP POST спасёт "отца русской демократии"

  3. #3
    Nokia Developer Champion Den123's Avatar
    Join Date
    Jul 2007
    Location
    Magnitogorsk, Russia
    Posts
    536
    Вопрос, мягко говоря, не понятен
    Вы что хотели узнать ? Что делает приведенный вами скрипт - тогда вы явно форумом ошиблись или как организовать взаимодействие смартфона с сервером ?

  4. #4
    Registered User asparov's Avatar
    Join Date
    Nov 2007
    Posts
    8
    извиняюсь, вопрос действительно был некорректный. вообщем суть в следующем $gps_data = fread(STDIN,1024); принимает данные из стандартного потока который считывается с сокета inetd демоном. Так вот вопрос как отправить данные на сокет?
    Я пытаюсь это сделать следующим образом но почему то не работает(((
    PHP Code:

                TBuf8
    <KDefaultBufferSizepostData8;
                
    postData8.Append(_L8("$111111111111111,1,1,091207,193633,E12129.2252,N2459.8891,00161,0.0100,147,07*37!"));
                
    RSocketServ ss;
                
    RSocket sock;
                
    TRequestStatus status;
                
    ss.Connect();
                
    sock.Open(ssKAfInetKSockStreamKProtocolInetTcp);
                
    _LIT(KRasAddr,"127.0.0.1");
                const 
    TInt KEchoPort5000;
                
    TInetAddr destAddr;
                
    destAddr.SetAddress(KRasAddr);
                
    destAddr.SetFamily(KAfInet);
                
    destAddr.SetPort(KEchoPort);
                
    sock.Connect(destAddrstatus);
                
    User::WaitForRequest(status);
                
    sock.Write(postData8,status);
                
    User::WaitForRequest(status);
                
    sock.Close(); 

  5. #5
    И работать не будет.

    Нала сделать класс-оболочку, от наследованную от активного объекта. Чтото наподобие:

    class CActiveSocket : public CActive
    {
    ....
    ....
    void OpenL(...);
    void WriteL(...);
    void RunL();// для активного объекта
    //
    private:

    RSocketServ iSocketServ;
    RSocket iSocket;

    // один из вариантов, их несколько можно придумать
    TBuf8<32> iData;// если длина данных постоянна
    HBufC8* iBuffer; // если нет

    };

  6. #6
    Registered User asparov's Avatar
    Join Date
    Nov 2007
    Posts
    8
    Quote Originally Posted by ValentinK View Post
    И работать не будет.

    Нала сделать класс-оболочку, от наследованную от активного объекта. Чтото наподобие:

    class CActiveSocket : public CActive
    {
    ....
    ....
    void OpenL(...);
    void WriteL(...);
    void RunL();// для активного объекта
    //
    private:

    RSocketServ iSocketServ;
    RSocket iSocket;

    // один из вариантов, их несколько можно придумать
    TBuf8<32> iData;// если длина данных постоянна
    HBufC8* iBuffer; // если нет

    };

    Спасибо! а есть где нибудь пример этого класса оболочки?

  7. #7
    В старых СДК S60 был Examples\Networking\TcpIp\EchoClientEngine
    В последнем сдк нету, но есть в UIQ3 Examples\SymbianNotCompatible\Networking\TcpIp\EchoClientEngine

  8. #8
    Registered User asparov's Avatar
    Join Date
    Nov 2007
    Posts
    8
    все разобрался, всем спасибо!Код из 4го коммента работает, просто там в php скрипте ошибка была)))
    Last edited by asparov; 2007-12-10 at 11:27.

Similar Threads

  1. Replies: 4
    Last Post: 2006-05-04, 09:22

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Nokia Developer aims to help you create apps and publish them so you can connect with users around the world.

京ICP备05048969号  © Copyright Nokia 2013 All rights reserved