Pokaż wyniki 1 do 5 z 5

Temat: [PERL] blokowanie gniazd

Threaded View

Previous Post Previous Post   Next Post Next Post
  1. #1

    Question [PERL] blokowanie gniazd

    Witam wszystkich mam pytanie załóżmy że tworze jakiś program w perlu który łączy się ze stroną internetową np google za pomocą IO::Socket w perlu no to klepie sobie

    Kod:
    $sock=new IO::Socket::INET->new(
    				PeerPort=>'80', 
    				Proto=>   'tcp', 
    				PeerAddr=>'173.194.35.191',
    				Timeout=> '40') or die
    Odpala się gniazdo i następuje podłączenie do strony www (czy podanego hosta na port 80 jak kto woli) teraz wysyłam do otworzonego gniazda dane które ma wysłać no to wpisuje kod:
    Kod:
    $sock->send("GET / HTTP/1.1\r\n...");
    kolejno odczytuje odpowiedź od servera
    Kod:
    $sock->recv($zmienna,1024);
    no i tu zaczyna się mój dylemat gdyż tak naprawdę użycie opcji recv wiąże się z zablokowaniem gniazda gdy nie ma odpowiedzi gniazdo przechodzi w tryb nasłuchu i czeka na odpowiedź aż do momentu w którym ono przyjdzie z czego nie jestem zadowolony czy da rade zrobić by gniazdo się nie blokowało tzn używam recv i nie ma odpowiedzi funkcja wywołana zwraca -1 który oznacza ze odpowiedź jeszcze nie przyszła i wykonuje sobie dalsza część kodu ?
    W C++ jest taka możliwość dzięki której gniazdo nie ma prawa się zablokować czy istnieje taka możliwość w Perlu ?

    Mam nadzieję że nie pomieszałem tego za bardzo i z góry dziękuje za odpowiedzi.
    Ostatnio edytowane przez szlagus : 03-20-2012 - 11:12

Zasady Postowania

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •  
Subskrybuj