Strona 1 z 2 12 OstatniOstatni
Pokaż wyniki 1 do 10 z 12

Temat: Linux socket

  1. #1

    Domyślnie Linux socket

    Czy programy "sieciowe" pod linuxem musza miec jakieś specjalne uprawnienia żeby łaczyć się z serwerami ?(oczywiście śmiagam na roocie)
    Chociaż chyba nie bo jeśli gethostbyname działa
    to zanczy że linux nic nie blokuje chyba
    a to z kolei znaczy że popełniełem gzdieś błąd który sprytnie mi umyka ?
    Kod php:

    int GetMx
    ::getAdr(int indork){   
           
    int socks;
           
    struct hostent *yOu;
           
    struct sockaddr_in their_addr;
           if((
    yOu=gethostbyname(DEST_ADR)) == NULL){
             
    printf("z99nk can not resolve ip from DNS\n");
             }
           if(
    socks socket(AF_INET,SOCK_STREAM,0)<0){
              
    printf("z00nk socket ERROR!!\n");
              }
           
    their_addr.sin_family AF_INET;
           
    their_addr.sin_port htons(PORT_1);
           
    their_addr.sin_addr = *((struct in_addr*)yOu->h_addr);
           
    memset(&(their_addr.sin_zero),'\0',8);
           if(
    connect(socks,(struct sockaddr*)&their_addr,sizeof(struct sockaddr))<0){//ERRROR
                 
    printf("z00nk conection ERROR\n");
                 } 
    connect zwraca -1 Why?
    Ostatnio edytowane przez naichniach : 02-17-2008 - 12:33
    Dlaczego wszystkie piosenki są o sexie ,miłości
    i innym pozytywnym gównie
    Nie mogły by być o czystym bólu ,nienawiści i frustracji i innych prawdach których więcej niż mniej ? ......... Ten świat to plastikowe ,fałszywe gówno
    nie mające nic wspólengo z moją rzeczywistością.
    Mtv to nie mój świat
    (tak jestem nie dojrzały ,mam kompelksy ..... i wiecie co? i chuj)

  2. #2
    Zarejestrowany
    Sep 2007
    Skąd
    Różne zakątki sieci.
    Postów
    995

    Domyślnie

    http://nikowek.blogspot.com/
    Zbrojne Ramię Pingwina!
    -----BEGIN GEEK CODE BLOCK-----
    Version: 3.12
    GCS d- s++:++ a--- C+++ UL+++ P L+++ E--- W++ N++ o K- w--
    O M- V- PS PE Y PGP++ t+ 5 X+ R tv- b++ DI- D-
    G+ e- h! r% y?
    ------END GEEK CODE BLOCK------

  3. #3

    Domyślnie

    Jak zwykle mnie rozjeb******
    No ok perror zwraca
    Socket operation on non-socket

    Funckja jest publiczną składową jeszcze nie operuje na żadnych zmiennych z tej klasy . Program biega z uprawnieniami roota
    Ostatnio edytowane przez naichniach : 02-17-2008 - 17:09
    Dlaczego wszystkie piosenki są o sexie ,miłości
    i innym pozytywnym gównie
    Nie mogły by być o czystym bólu ,nienawiści i frustracji i innych prawdach których więcej niż mniej ? ......... Ten świat to plastikowe ,fałszywe gówno
    nie mające nic wspólengo z moją rzeczywistością.
    Mtv to nie mój świat
    (tak jestem nie dojrzały ,mam kompelksy ..... i wiecie co? i chuj)

  4. #4
    Zarejestrowany
    Sep 2007
    Skąd
    Różne zakątki sieci.
    Postów
    995

    Domyślnie

    if((socks = socket(AF_INET,SOCK_STREAM,0))==-1)
    http://nikowek.blogspot.com/
    Zbrojne Ramię Pingwina!
    -----BEGIN GEEK CODE BLOCK-----
    Version: 3.12
    GCS d- s++:++ a--- C+++ UL+++ P L+++ E--- W++ N++ o K- w--
    O M- V- PS PE Y PGP++ t+ 5 X+ R tv- b++ DI- D-
    G+ e- h! r% y?
    ------END GEEK CODE BLOCK------

  5. #5

    Domyślnie

    Tu wszytko jest ok
    Błąd jest dopiero przy connect();
    Dlaczego wszystkie piosenki są o sexie ,miłości
    i innym pozytywnym gównie
    Nie mogły by być o czystym bólu ,nienawiści i frustracji i innych prawdach których więcej niż mniej ? ......... Ten świat to plastikowe ,fałszywe gówno
    nie mające nic wspólengo z moją rzeczywistością.
    Mtv to nie mój świat
    (tak jestem nie dojrzały ,mam kompelksy ..... i wiecie co? i chuj)

  6. #6

    Domyślnie

    Cytat Napisał naichniach Zobacz post
    Tu wszytko jest ok
    Błąd jest dopiero przy connect();
    Obawiam się, że nie jest ok ponieważ zmienna socks przyjmuje wartość 0 (co nie jest prawidłową wartością socketa). Dzieje się tak dlatego, że najpierw sprawdzana jest nierówność wartości funkcji socket z 0 (co w rezultacie daje 0), a następnie wartość ta przypisywana jest do zmiennej socks.
    Gdyby znak mniejszości miał mniejszy priorytet, wtedy wszystko byłoby w porządku.

    Dwa posty wyżej napisane jest jak to powinno wyglądać.
    Ostatnio edytowane przez coefficient : 02-17-2008 - 22:53

  7. #7

    Domyślnie

    Cytat Napisał coefficient Zobacz post
    Obawiam się, że nie jest ok ponieważ zmienna socks przyjmuje wartość 0 (co nie jest prawidłową wartością socketa). Dzieje się tak dlatego, że najpierw sprawdzana jest nierówność wartości funkcji socket z 0 (co w rezultacie daje 0), a następnie wartość ta przypisywana jest do zmiennej socks.
    Gdyby znak mniejszości miał mniejszy priorytet, wtedy wszystko byłoby w porządku.

    Dwa posty wyżej napisane jest jak to powinno wyglądać.
    Przyjmuje wartość zero?
    where ?
    Chyba nie rozumie chodzi ci o ostatni argument ?
    To nie ma znaczenia zmieniłem na IPPROTO_TCP
    W oby dwóch przypadkach funkcja zwraca Sukces
    Myśle że to fakt że funckja jest sĸaladową klasy coś miesza
    Potem sprawdze co się stanie jesli ten sam kod umieszce w zwykłej funkcji
    i wrzuce do main
    Bo coś mi się wydaje że to przez klase
    Ostatnio edytowane przez naichniach : 02-18-2008 - 10:03
    Dlaczego wszystkie piosenki są o sexie ,miłości
    i innym pozytywnym gównie
    Nie mogły by być o czystym bólu ,nienawiści i frustracji i innych prawdach których więcej niż mniej ? ......... Ten świat to plastikowe ,fałszywe gówno
    nie mające nic wspólengo z moją rzeczywistością.
    Mtv to nie mój świat
    (tak jestem nie dojrzały ,mam kompelksy ..... i wiecie co? i chuj)

  8. #8

    Domyślnie

    Cytat Napisał naichniach Zobacz post
    Chyba nie rozumie chodzi ci o ostatni argument ?
    Raczej nie.
    Cytat Napisał naichniach Zobacz post
    Przyjmuje wartość zero?
    where ?
    Otóż w tym warunku
    Kod:
    if(socks = socket(AF_INET,SOCK_STREAM,0)<0){
              printf("z00nk socket ERROR!!\n");
              }
    Jeżeli jest on napisany tak jak powyżej, to ze względu na wyższy priorytet operatora porównania (w Twoim przypadku jest to znak mniejszości) nad operatorem przypisania, najpierw wykonywane jest to porównanie
    Kod:
    socket(AF_INET,SOCK_STREAM,0)<0
    co w konsekwencji daje 0 (gdy wartość zwracana przez funkcję socket daje wartość większą od 0) lub 1 (gdy socket zwróci -1, czyli błąd). Zdecydowanie częściej będzie to 0 bo funkcja socket rzadko zwraca błąd. Po wykonaniu tej części można założyć, że mamy coś takiego
    Kod:
    if(socks = 0)
    Następnie wartość 0 (rzadziej 1) przypisywana jest do zmiennej socks, przez co deskryptor gniazda jest nieprawidłowy i kolejna funkcja (connect()) zwraca błąd o gnieździe.
    Jeszcze jedna uwaga dlaczego nie wypisywane jest ciało tego warunku, czyli "z00nk socket ERROR!!\n". Otóż dzieje się tak dlatego, że warunek przyjmuje taką wartość, jaką wartość ma przypisanie - będzie to 0 (false) lub 1 (true). Stąd będzie taki warunek
    Kod:
    if (0)
    Ponieważ jest to 0, warunek nie jest spełniony i tym samym nie ma wypisywanego błędu o gnieździe.

    Mam nadzieję, że wiadomo co w związku z tym należy zrobić, zresztą zostało to już napisane kilka postów wyżej.

  9. #9

    Domyślnie

    Wiadomo chyba
    Kurcze stary nigdy bym na to nie wpadł raczej
    ale w takim razie wygląda na to że większość ludzi błędnie programuje gniazda ?
    Bo taki zapis jest chyba bardzo popólarny
    przynajmniej takie odnosze wrażenie
    Ostatnio edytowane przez naichniach : 02-18-2008 - 22:16
    Dlaczego wszystkie piosenki są o sexie ,miłości
    i innym pozytywnym gównie
    Nie mogły by być o czystym bólu ,nienawiści i frustracji i innych prawdach których więcej niż mniej ? ......... Ten świat to plastikowe ,fałszywe gówno
    nie mające nic wspólengo z moją rzeczywistością.
    Mtv to nie mój świat
    (tak jestem nie dojrzały ,mam kompelksy ..... i wiecie co? i chuj)

  10. #10

    Domyślnie

    Cytat Napisał naichniach Zobacz post
    ale w takim razie wygląda na to że większość ludzi błędnie programuje gniazda ?
    Bo taki zapis jest chyba bardzo popólarny
    przynajmniej takie odnosze wrażenie
    Ja mam wręcz odmienne wrażenie. Szczerze mówiąc to nie spotkałem się żeby ktoś (szczególnie w jakimś tutorialu) źle napisał tą funkcję.

Strona 1 z 2 12 OstatniOstatni

Podobne wątki

  1. php Socket
    By gogulas in forum PHP/CGI/ASP/JSP/J2EE
    Odpowiedzi: 19
    Autor: 01-22-2008, 02:44
  2. GNU/Linux to OS, Linux - kernel
    By m33 in forum Linux
    Odpowiedzi: 3
    Autor: 12-04-2007, 16:15
  3. raw socket
    By 31337 in forum C/C++
    Odpowiedzi: 1
    Autor: 05-29-2007, 19:58
  4. SSL, PHP i socket.
    By 31337 in forum PHP/CGI/ASP/JSP/J2EE
    Odpowiedzi: 4
    Autor: 05-18-2007, 18:50
  5. [c/c++]Socket i "Struct"
    By skiter in forum C/C++
    Odpowiedzi: 0
    Autor: 10-10-2006, 06:13

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