На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: Qraizer, Hsilgos
  
> Threads in Linux , я запарился уже, люди хелп
    короче создал я поток там, а вот теперь новая проблема - не магу выполнить внутри потока функцию
    connect()
    long int pos = 1;
    int sock, e;
    struct sockaddr_in saddr_in;
    while(pos != 0){
     pos = getproxyinf();
     bzero(&saddr_in,sizeof(saddr_in));*/
     sock = socket(AF_INET, SOCK_STREAM,0);
     saddr_in.sin_family = AF_INET;
     saddr_in.sin_port = htons(80);//(atoi(pHinf.port));
     saddr_in.sin_addr.s_addr = inet_addr("194.84.180.245");//(pHinf.ip_char);
     if(sock < 0){perror("error opening socket"); pthread_exit(0);}
            e = connect(sock,(sockaddr*)&saddr_in,sizeof(saddr_in)); // ТУТ ПРОГА ЗАВЕРШАЕТЬСЯ, как будто там exit()
     if(e){perror("error connect\n"); pthread_exit(0);}
     printf("Connected\n");
     close(sock);
    }
      Не все Линухи поддерживают потоки. Какой-то из RedHat'ов заявлял весьма открыто, что потоки будут поддерживаться в будущих версиях.
        Цитата (Guest @ 4.12.03, 02:17)
        Не все Линухи поддерживают потоки. Какой-то из RedHat'ов заявлял весьма открыто, что потоки будут поддерживаться в будущих версиях.

        в будущих ? а уменя и так последняя 9 версия! и к тому же потоки то у меня работаеют unsure.gif.
        то еть если я создаю поток и внем свтавляю функцию printf() то она в потке сработает, не работает
        только connect()
          А ты этот же код без дополнительного потока пробывал?
            Цитата (Fantasist @ 8.12.03, 02:21)
            А ты этот же код без дополнительного потока пробывал?

            пробывал просто connect из функции main все работало.
            а че если бы не работало и там?
              mda, connect-to rabotaet.
              V linuxe net potokov, takih kak v vindows. tam tolko processy. potoki v linux emuliruutsya.
              poprobuy funktsiu fork()
                Цитата (m_fox @ 9.12.03, 10:02)
                mda, connect-to rabotaet.
                V linuxe net potokov, takih kak v vindows. tam tolko processy. potoki v linux emuliruutsya.
                poprobuy funktsiu fork()

                у меня книга есть "UNIX разработка сетевых предложений, У.Р.Стивенс" брал я все примеры от туда, там как раз есть потоки. Но хотя ты же сказал под Линукс нет потоков, а тут Юникс.
                  Цитата (m_fox @ 9.12.03, 10:02)
                  mda, connect-to rabotaet.
                  V linuxe net potokov, takih kak v vindows. tam tolko processy. potoki v linux emuliruutsya.
                  poprobuy funktsiu fork()

                  Чувак, ты че меня грузишь ? а как по твоему все другие операции в потоке работают ??
                  или ты хочешь сказать что это не поток ??? нафига там вообще тогда либы для работы с потоками и как по твоему демоны работают ?
                    A zachem mne tebya gruzit?
                    Yadro mozhet rabotat tolko s processami, ono ne znaet chto takoe potoki, v takom vide, kak oni realizovany v drugih sistemah. No processy mogut razdelyat svoi atributy, tak chto podobnoye povedenie shozhe s potokami. No s tocki zreniya yadra - eto otdelnye processy. Est biblioteka LinuxThreads, v kotoraya delayet atributy processa takim obrazom, chto mozhno ih razdelyat s drugim processom. Ya konechno tam davno ne programmiroval, no neuzheli seychas stali postavlyatsya s nim biblioneki, podderzhivauschie mnogopotokovost?
                    A naschet demonov - tot zhe appachi delaet vyzov fork()
                    A neuzheli biblioteka LinuxThreads udovletvoryaet POSIX?
                      Hotya, ya posmotrel, redhat's LinuxTreads seychas sootvetstvuet POSIX.
                      1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                      0 пользователей:


                      Рейтинг@Mail.ru
                      [ Script execution time: 0,0269 ]   [ 15 queries used ]   [ Generated: 18.05.24, 06:02 GMT ]