Nowe posty

xx Problem ze sterownikami. (5)
2024-04-13, 21:25:16
xx Instalacja xfce4 (2)
2024-04-13, 16:20:17
xx Serie kompilacji bez instalacji dla “emerge” w Gentoo (2)
2024-04-08, 18:40:04
xx Plasma 6 w Neonie ssie trochę mniej ... (17)
2024-04-05, 10:03:46
xx Problem z Linux Lite po instalacji (3)
2024-04-03, 14:23:40
xx Jak właczyć num locka przy starcie systemu debian 12? (12)
2024-04-02, 17:43:54
xx Brak dźwieku w systemie. (5)
2024-04-02, 16:13:41
xx Dystrybucja pod HP Omen (7)
2024-03-29, 11:33:05
xx [Poradnik] Wyszukiwanie Sterowników (2)
2024-03-27, 21:08:23
xx Ile pingwinów? (1)
2024-03-27, 08:59:24

Autor Wątek: czy select() moze odczytac deskryptor portu?  (Przeczytany 3664 razy)

wojczer

  • Gość
czy select() moze odczytac deskryptor portu?
« dnia: 2005-07-17, 20:05:08 »
Witam! Czy jest możliwość oglądania na linuxie np. kamer internetowych, lub np. teledysków z teledyski.interia.pl na linuxie?

bartosak

  • Gość
czy select() moze odczytac deskryptor portu?
« Odpowiedź #1 dnia: 2005-07-17, 15:07:07 »
mam tutaj na mysli czy jesli zrobie sobie socket i dostane socket destryptor to czy moge tak zrobic:

    string AdresNadawcy;
    PORT PortNadawcy;
   
    // ustawiam odpowiedni czas
    struct timeval czas;
    czas.tv_sec  = 0;
    czas.tv_usec = 500;
   
    // Ustawiam FileDestryptor jako socket ;-)
    fd_set ZrodloDanych;
    FD_ZERO(&ZrodloDanych);
    FD_SET(0, &ZrodloDanych);

    if (select(1, &ZrodloDanych, NULL, NULL, &czas)) {
        int temp;
        char buf[4097];
        text = "";
        bzero(buf,4097);
        temp = recvFrom(buf, 4096, AdresNadawcy, PortNadawcy);
        if ((AdresNadawcy == Adres) && (PortNadawcy == Port))
           text.append(buf,4096);
    }
    else text="";


Dodam ze protokol to UDP..
Chodzi mi o to ze jesli serverek nic do mnie nie odpowie (blednie wprowdzony port lub IP) to mi sie program tnie

bartosak

  • Gość
czy select() moze odczytac deskryptor portu?
« Odpowiedź #2 dnia: 2005-07-17, 17:55:50 »
Dodalem flage O_NONBLOCK
i zadzialalo a dokladniej:
fcntl(sockDesc, F_SETFL, O_NONBLOCK);

a czas na 1 sekundke i dziala !