Тема: Основные вопросы по сокетам

Ответить в теме
Страница 2 из 2 ПерваяПервая 1 2
Показано с 21 по 38 из 38
  1. Вверх #21
    Посетитель
    Пол
    Мужской
    Адрес
    Odessa
    Сообщений
    491
    Репутация
    13
    Цитата Сообщение от krieger
    Ребята, подмогните с проблемой: в том примере Касперского сервер принимает только 16 байт мессаг, и при посылке больше 15 символов(без CR) возвращаются всё равно только начало
    Хотя глянул рцвбуф - исправные 8192 байт
    Встаёт исконно русский вопрос
    Если надо - приведу код.
    Вот с приведения кода и начни.
    Думаешь ли ты о жизни? Думаешь ли ты о смерти? Что ты будешь делать когда поймешь что никому не нужен?


  2. Вверх #22
    Посетитель
    Пол
    Мужской
    Адрес
    Odessa
    Сообщений
    491
    Репутация
    13
    Цитата Сообщение от krieger
    Нет, я понял, ты мне просто ссылку корявую дал: на самом деле это http://msdn.microsoft.com/library/en-us/winsock/winsock/setsockopt_2.asp
    Как раз по твоей ссылке у меня IE не заходит.
    Думаешь ли ты о жизни? Думаешь ли ты о смерти? Что ты будешь делать когда поймешь что никому не нужен?

  3. Вверх #23
    Сервак:
    Код:
     #include <stdio.h>
      #include <winsock2.h>  // Wincosk2.h ДНКФЕМ АШРЭ 
              // ОНДЙКЧВЕМ ПЮМЭЬЕ windows.h!
      #include <windows.h>
    
      #define MY_PORT    1025
               // оНПР, ЙНРНПШИ ЯКСЬЮЕР ЯЕПБЕП
    
      // ОПНРНРХО ТСМЙЖХХ, НАЯКСФХБЮЧЫХИ
      // ОНДЙКЧВХБЬХУЯЪ ОНКЭГНБЮРЕКЕИ
      DWORD WINAPI ClientThread&#40;LPVOID client_socket&#41;;
    
      // ЦКНАЮКЭМЮЪ ОЕПЕЛЕММЮЪ ? ЙНКХВЕЯРБН
      // ЮЙРХБМШУ ОНКЭГНБЮРЕКЕИ 
      int nclients = 0;
    
      int main&#40;int argc, char* argv&#91;&#93;&#41;
      &#123;
        WSADATA wsaData;
    
        printf&#40;"TCP SERVER DEMO\n"&#41;;
    
        // ьЮЦ 1 - хМХЖХЮКХГЮЖХЪ аХАКХНРЕЙХ яНЙЕРНБ
        // р.Й. БНГБПЮЫЕММЮЪ ТСМЙЖХЕИ ХМТНПЛЮЖХЪ
        // МЕ ХЯОНКЭГСЕРЯЪ ЕИ ОЕПЕДЮЕРЯЪ СЙЮГЮРЕКЭ МЮ
        // ПЮАНВХИ АСТЕП, ОПЕНАПЮГСЕЛШИ
        // Й СЙЮГЮРЕКЧ  МЮ ЯРПСЙРСПС WSADATA.
        // рЮЙНИ ОПХЕЛ ОНГБНКЪЕР ЯЩЙНМНЛХРЭ НДМС
        // ОЕПЕЛЕММСЧ, НДМЮЙН, АСТЕП ДНКФЕМ АШРЭ МЕ ЛЕМЕЕ
        // ОНКЙХКНАЮИРЮ ПЮГЛЕПНЛ &#40;ЯРПСЙРСПЮ WSADATA
        // ГЮМХЛЮЕР 400 АЮИР&#41;
        if &#40;WSAStartup&#40;0x0202,&wsaData&#41;&#41; 
        &#123;
          // нЬХАЙЮ!
          printf&#40;"Error WSAStartup %d\n",
                 WSAGetLastError&#40;&#41;&#41;;
          return -1;
        &#125;
    	printf&#40;"WSAStartup&#40;&#41; OK\n"&#41;;
    
        // ьЮЦ 2 - ЯНГДЮМХЕ ЯНЙЕРЮ
        SOCKET mysocket;
        // AF_INET     - ЯНЙЕР хМРЕПМЕРЮ
        // SOCK_STREAM  - ОНРНЙНБШИ ЯНЙЕР &#40;Я
        //      СЯРЮМНБЙНИ ЯНЕДХМЕМХЪ&#41;
        // 0      - ОН СЛНКВЮМХЧ БШАХПЮЕРЯЪ TCP ОПНРНЙНК
        if &#40;&#40;mysocket=socket&#40;AF_INET,SOCK_STREAM,0&#41;&#41;<0&#41;
        &#123;
          // нЬХАЙЮ!
          printf&#40;"Error socket %d\n",WSAGetLastError&#40;&#41;&#41;;
          WSACleanup&#40;&#41;;
            // дЕХМХЖХКХГЮЖХЪ АХАКХНРЕЙХ Winsock
          return -1;
        &#125;
    	printf&#40;"socket&#40;&#41; OK\n"&#41;;
    
        // ьЮЦ 3 ЯБЪГШБЮМХЕ ЯНЙЕРЮ Я КНЙЮКЭМШЛ ЮДПЕЯНЛ
        sockaddr_in local_addr;
        local_addr.sin_family=AF_INET;
        local_addr.sin_port=htons&#40;MY_PORT&#41;;
                 // МЕ ГЮАШБЮЕЛ Н ЯЕРЕБНЛ ОНПЪДЙЕ!!!
        local_addr.sin_addr.s_addr=0;
                 // ЯЕПБЕП ОПХМХЛЮЕР ОНДЙКЧВЕМХЪ
                 // МЮ БЯЕ IP-ЮДПЕЯЮ
    
        // БШГШБЮЕЛ bind ДКЪ ЯБЪГШБЮМХЪ
        if &#40;bind&#40;mysocket,&#40;sockaddr *&#41; &local_addr,
                    sizeof&#40;local_addr&#41;&#41;&#41;
        &#123;
          // нЬХАЙЮ
          printf&#40;"Error bind %d\n",WSAGetLastError&#40;&#41;&#41;;
          closesocket&#40;mysocket&#41;;  // ГЮЙПШБЮЕЛ ЯНЙЕР!
          WSACleanup&#40;&#41;;
          return -1;
        &#125;
    	printf&#40;"bind&#40;&#41; OK\n"&#41;;
    
        // ьЮЦ 4 НФХДЮМХЕ ОНДЙКЧВЕМХИ
        // ПЮГЛЕП НВЕПЕДХ ? 0x100
        if &#40;listen&#40;mysocket, 0x100&#41;&#41;
        &#123;
          // нЬХАЙЮ
          printf&#40;"Error listen %d\n",WSAGetLastError&#40;&#41;&#41;;
          closesocket&#40;mysocket&#41;;
          WSACleanup&#40;&#41;;
          return -1;
        &#125;
    	printf&#40;"listen&#40;&#41; OK\n"&#41;;
    
        printf&#40;"\t\t\tWaiting for connections...\n"&#41;;
    
        // ьЮЦ 5 ХГБКЕЙЮЕЛ ЯННАЫЕМХЕ ХГ НВЕПЕДХ
        SOCKET client_socket;    // ЯНЙЕР ДКЪ ЙКХЕМРЮ
        sockaddr_in client_addr;    // ЮДПЕЯ ЙКХЕМРЮ
                  // &#40;ГЮОНКМЪЕРЯЪ ЯХЯРЕЛНИ&#41;
    
        // ТСМЙЖХХ accept МЕНАУНДХЛН ОЕПЕДЮРЭ ПЮГЛЕП
        // ЯРПСЙРСПШ
        int client_addr_size=sizeof&#40;client_addr&#41;;
    
        // ЖХЙК ХГБКЕВЕМХЪ ГЮОПНЯНБ МЮ ОНДЙКЧВЕМХЕ ХГ
        // НВЕПЕДХ
        while&#40;true&#41;
        &#123;
    
    		client_socket=accept&#40;mysocket, &#40;sockaddr *&#41; &client_addr, &client_addr_size&#41;;
    		nclients++;      // СБЕКХВХБЮЕЛ ЯВЕРВХЙ ОНДЙКЧВХБЬХУЯЪ ЙКХЕМРНБ
          // ОШРЮЕЛЯЪ ОНКСВХРЭ ХЛЪ УНЯРЮ
          HOSTENT *hst;
          hst=gethostbyaddr&#40;&#40;char *&#41;
              &client_addr.sin_addr.s_addr,4, AF_INET&#41;;
    
          // БШБНД ЯБЕДЕМХИ Н ЙКХЕМРЕ
          printf&#40;"+%s &#91;%s&#93; new connect!\n",
          &#40;hst&#41;?hst->h_name&#58;"",
          inet_ntoa&#40;client_addr.sin_addr&#41;&#41;;
    
          // бШГНБ МНБНЦН ОНРНЙЮ ДКЪ НАЯКСФБЮМХЪ ЙКХЕМРЮ
          // дЮ, ДКЪ ЩРНЦН ПЕЙНЛЕМДСЕРЯЪ ХЯОНКЭГНБЮРЭ
          // _beginthreadex МН, ОНЯЙНКЭЙС МХЙЮЙХУ БШГНБ
          // ТСМЙЖХИ ЯРЮМДЮПРМНИ яХ АХАКХНРЕЙХ ОНРНЙ МЕ
          // ДЕКЮЕР, ЛНФМН НАНИРХЯЭ Х CreateThread
          DWORD thID;
          CreateThread&#40;NULL,NULL,ClientThread,
                  &client_socket,NULL,&thID&#41;;
        &#125;
        return 0;
      &#125;
    
      // щРЮ ТСМЙЖХЪ ЯНГДЮЕРЯЪ Б НРДЕКЭМНЛ ОНРНЙЕ Х
      // НАЯСФХБЮЕР НВЕПЕДМНЦН ОНДЙКЧВХБЬЕЦНЯЪ ЙКХЕМРЮ
      // МЕГЮБХЯХЛН НР НЯРЮКЭМШУ
      DWORD WINAPI ClientThread&#40;LPVOID client_socket&#41;
      &#123;
        SOCKET my_sock;
        my_sock=&#40;&#40;SOCKET *&#41; client_socket&#41;&#91;0&#93;;
    	char buff&#91;20*1024&#93;;
        
        #define sHELLO "Hello, Sailor\r\n"
    
    	int len = sizeof&#40;buff&#41;;
    	int llen = sizeof&#40;len&#41;;
    
    if &#40;getsockopt&#40;my_sock, SOL_SOCKET, SO_RCVBUF, &#40;char*&#41;&len, &llen&#41; != SOCKET_ERROR&#41; printf&#40;"SO_RCVBUF Value&#58; %ld\n", len&#41;;
    
    
    //	setsockopt&#40;my_sock, SOL_SOCKET, SO_RCVBUF, &#40;char*&#41;&len, sizeof&#40;len&#41;&#41;;
        // НРОПЮБКЪЕЛ ЙКХЕМРС ОПХБЕРЯРБХЕ 
        send&#40;my_sock,sHELLO,sizeof&#40;sHELLO&#41;,0&#41;;
    
        // ЖХЙК ЩУН-ЯЕПБЕПЮ&#58; ОПХЕЛ ЯРПНЙХ НР ЙКХЕМРЮ Х
        // БНГБПЮЫЕМХЕ ЕЕ ЙКХЕМРС
    
    	int bytes_recv;
    	do
    	&#123;
    		bytes_recv = recv&#40;my_sock,&buff&#91;0&#93;,sizeof&#40;buff&#41;,0&#41;;
    		send&#40;my_sock,&buff&#91;0&#93;,bytes_recv,0&#41;;
    		if&#40;bytes_recv > 0&#41;
    			printf&#40;"%i bytes received&#58;\n%s", bytes_recv, buff&#41;;
    	&#125;
    	while&#40;bytes_recv != SOCKET_ERROR&#41;;
    
    
    
        // ЕЯКХ ЛШ ГДЕЯЭ, РН ОПНХГНЬЕК БШУНД ХГ ЖХЙКЮ ОН
        // ОПХВХМЕ БНГПЮЫЕМХЪ ТСМЙЖХЕИ recv НЬХАЙХ ?
        // ЯНЕДХМЕМХЕ ЙКХЕМРНЛ ПЮГНПБЮМН
        nclients--; // СЛЕМЭЬЮЕЛ ЯВЕРВХЙ ЮЙРХБМШУ ЙКХЕМРНБ
        printf&#40;"-disconnect &#40;channel lost &#58;&#40; &#41;\n"&#41;;
    
        // ГЮЙПШБЮЕЛ ЯНЙЕР
        closesocket&#40;my_sock&#41;;
        return 0;
      &#125;

    Клиент:
    Код:
     #include <stdio.h>
      #include <string.h>
      #include <winsock2.h>
      #include <windows.h>
    
    
      #define PORT 1025
      #define SERVERADDR "127.0.0.1"
    
      int main&#40;int argc, char* argv&#91;&#93;&#41;
      &#123;
        WSADATA wsaData;
        printf&#40;"TCP DEMO CLIENT\n"&#41;;
    
        // ьЮЦ 1 - ХМХЖХЮКХГЮЖХЪ АХАКХНРЕЙХ Winsock
        if &#40;WSAStartup&#40;0x0202,&wsaData&#41;&#41;
        &#123;
          printf&#40;"WSAStart error %d\n",WSAGetLastError&#40;&#41;&#41;;
          return -1;
        &#125;
    	printf&#40;"WSAStartup&#40;&#41; OK\n"&#41;;
    
        // ьЮЦ 2 - ЯНГДЮМХЕ ЯНЙЕРЮ
        SOCKET my_sock;
        my_sock=socket&#40;AF_INET,SOCK_STREAM,0&#41;;
        if &#40;my_sock < 0&#41;
        &#123;
          printf&#40;"Socket&#40;&#41; error %d\n",WSAGetLastError&#40;&#41;&#41;;
          return -1;
        &#125;
    	printf&#40;"socket&#40;&#41; OK\n"&#41;;
    
        // ьЮЦ 3 - СЯРЮМНБЙЮ ЯНЕДХМЕМХЪ
    
        // ГЮОНКМЕМХЕ ЯРПСЙРСПШ sockaddr_in
        // СЙЮГЮМХЕ ЮДПЕЯЮ Х ОНПРЮ ЯЕПБЕПЮ
        sockaddr_in dest_addr;
        dest_addr.sin_family=AF_INET;
        dest_addr.sin_port=htons&#40;PORT&#41;;
        HOSTENT *hst;
    
        // ОПЕНАПЮГНБЮМХЕ IP ЮДПЕЯЮ ХГ ЯХЛБНКЭМНЦН Б
        // ЯЕРЕБНИ ТНПЛЮР
        if &#40;inet_addr&#40;SERVERADDR&#41;!=INADDR_NONE&#41;
          dest_addr.sin_addr.s_addr=inet_addr&#40;SERVERADDR&#41;;
        else
          // ОНОШРЙЮ ОНКСВХРЭ IP ЮДПЕЯ ОН ДНЛЕММНЛС
          // ХЛЕМХ ЯЕПБЕПЮ
          if &#40;hst=gethostbyname&#40;SERVERADDR&#41;&#41;
          // hst->h_addr_list ЯНДЕПФХР МЕ ЛЮЯЯХБ ЮДПЕЯНБ,
          // Ю ЛЮЯЯХБ СЙЮГЮРЕКЕИ МЮ ЮДПЕЯЮ
          &#40;&#40;unsigned long *&#41;&dest_addr.sin_addr&#41;&#91;0&#93;=
            &#40;&#40;unsigned long **&#41;hst->h_addr_list&#41;&#91;0&#93;&#91;0&#93;;
          else 
          &#123;
            printf&#40;"Invalid address %s\n",SERVERADDR&#41;;
            closesocket&#40;my_sock&#41;;
            WSACleanup&#40;&#41;;
            return -1;
          &#125;
    
        // ЮДПЕЯ ЯЕПБЕПЮ ОНКСВЕМ ? ОШРЮЕЛЯЪ СЯРЮМНБХРЭ
        // ЯНЕДХМЕМХЕ 
        if &#40;connect&#40;my_sock,&#40;sockaddr *&#41;&dest_addr,
                    sizeof&#40;dest_addr&#41;&#41;&#41;
        &#123;
          printf&#40;"Connect error %d\n",WSAGetLastError&#40;&#41;&#41;;
          return -1;
        &#125;
    
    	printf&#40;"connect&#40;&#41; OK\nType quit for quit\n\n"&#41;;
        // ьЮЦ 4 - ВРЕМХЕ Х ОЕПЕДЮВЮ ЯННАЫЕМХИ
    	char buff&#91;20*1024&#93;;
        int nsize;
        while&#40;&#40;nsize=recv&#40;my_sock,&buff&#91;0&#93;,
                          sizeof&#40;buff&#41;-1,0&#41;&#41;
                      !=SOCKET_ERROR&#41;
        &#123;
          // ЯРЮБХЛ ГЮБЕПЬЮЧЫХИ МНКЭ Б ЙНМЖЕ ЯРПНЙХ 
          buff&#91;nsize&#93;=0;
    
          // БШБНДХЛ МЮ ЩЙПЮМ 
          printf&#40;"S=>C&#58;%s\n",buff&#41;;
    
          // ВХРЮЕЛ ОНКЭГНБЮРЕКЭЯЙХИ ББНД Я ЙКЮБХЮРСПШ
          printf&#40;"S<=C&#58;"&#41;; fgets&#40;&buff&#91;0&#93;,sizeof&#40;buff&#41;-1,
                 stdin&#41;;
    
          // ОПНБЕПЙЮ МЮ "quit"
          if &#40;!strcmp&#40;&buff&#91;0&#93;,"quit\n"&#41;&#41;
          &#123;
            // йНППЕЙРМШИ БШУНД
            printf&#40;"Exit..."&#41;;
    		shutdown&#40;my_sock, 2&#41;;
    //        closesocket&#40;my_sock&#41;; not right, but 2do sending mess that client disconnects
            WSACleanup&#40;&#41;;
            return 0;
          &#125;
    
          // ОЕПЕДЮЕЛ ЯРПНЙС ЙКХЕМРЮ ЯЕПБЕПС
          send&#40;my_sock,&buff&#91;0&#93;,nsize,0&#41;;
        &#125;
    
        printf&#40;"Recv error %d\n",WSAGetLastError&#40;&#41;&#41;;
        closesocket&#40;my_sock&#41;;
        WSACleanup&#40;&#41;;
        return -1;
      &#125;
    [url=www.warsword.od.ua][code]IC | XC
    ---+---
    NI | KA
    [/code][/url]

  4. Вверх #24
    Цитата Сообщение от Slaventius
    Цитата Сообщение от krieger
    Нет, я понял, ты мне просто ссылку корявую дал: на самом деле это http://msdn.microsoft.com/library/en-us/winsock/winsock/setsockopt_2.asp
    Как раз по твоей ссылке у меня IE не заходит.
    Не знаю, травку разную, значит, юзаем - Опера у меня, говорят, она больше вставляет, чем Эксплорер.
    [url=www.warsword.od.ua][code]IC | XC
    ---+---
    NI | KA
    [/code][/url]

  5. Вверх #25
    Извиняюсь, что не убрал комменты, к тому же, непонятно, что за кодировка.
    [url=www.warsword.od.ua][code]IC | XC
    ---+---
    NI | KA
    [/code][/url]

  6. Вверх #26
    Люди, так нельзя! Как только нормальный вопрос - сразу все как в рот воды набрали!
    [url=www.warsword.od.ua][code]IC | XC
    ---+---
    NI | KA
    [/code][/url]

  7. Вверх #27
    Посетитель
    Пол
    Мужской
    Адрес
    Odessa
    Сообщений
    491
    Репутация
    13
    А что тут говорить? У меня сервер все отлично возвращает. И 16 и все 200 байт. Я его правда не клиентом тестировал. С телнета. Что же касается загадочного числа 15 то советую посчитать количество байт в в строке
    Код:
    #define sHELLO "Hello, Sailor\r\n"
    и обратить внимание на использование переменной nsize в коде клиента. И думаю все вопросы разрешатся.

    P.S. это код от какого Касперского? Если от того который клепает АВП, то я не удивляюсь своей нелюбви к его продукту. Столько ляпов в простом примере. Чего стоит цикл
    Код:
    while&#40;bytes_recv != SOCKET_ERROR&#41;;
    А если bytes_recv будет равен 0? Этот поток никогда не увидит что клиент отвалился и следовательно будет висеть вечно. Где отработка то? где хотя бы
    Код:
    if &#40;!bytes_recv&#41; break;
    ?
    Думаешь ли ты о жизни? Думаешь ли ты о смерти? Что ты будешь делать когда поймешь что никому не нужен?

  8. Вверх #28
    Цитата Сообщение от Slaventius
    А что тут говорить? У меня сервер все отлично возвращает. И 16 и все 200 байт. Я его правда не клиентом тестировал. С телнета. Что же касается загадочного числа 15 то советую посчитать количество байт в в строке
    Код:
    #define sHELLO "Hello, Sailor\r\n"
    и обратить внимание на использование переменной nsize в коде клиента. И думаю все вопросы разрешатся.
    Точно подмечено. Спасибо, надо проверить.

    Цитата Сообщение от Slaventius
    P.S. это код от какого Касперского? Если от того который клепает АВП, то я не удивляюсь своей нелюбви к его продукту. Столько ляпов в простом примере. Чего стоит цикл
    Код:
    while&#40;bytes_recv != SOCKET_ERROR&#41;;
    А если bytes_recv будет равен 0? Этот поток никогда не увидит что клиент отвалился и следовательно будет висеть вечно. Где отработка то? где хотя бы
    Код:
    if &#40;!bytes_recv&#41; break;
    ?
    Да не, это просто каспер написал книгу о программировании.
    А вот это место действительно недоработано. Оно срабатывает если только просто закрыть окно клиента. команда куит - не приводит к выводу строки о дисконнекте.
    ЗЫ прошу не пинать за опечатки - пишу раненный в палец
    [url=www.warsword.od.ua][code]IC | XC
    ---+---
    NI | KA
    [/code][/url]

  9. Вверх #29
    ЮЮ А вот это место действительно недоработано. Оно срабатывает если только просто закрыть окно клиента. команда куит - не приводит к выводу строки о дисконнекте.

    Забыл последний аккорд - "но я-то его доработаю!!!"
    И пожелайте мне в этом успехов!
    [url=www.warsword.od.ua][code]IC | XC
    ---+---
    NI | KA
    [/code][/url]

  10. Вверх #30
    Посетитель
    Пол
    Мужской
    Адрес
    Odessa
    Сообщений
    491
    Репутация
    13
    ноу коммент. Больше проводи опытов
    Думаешь ли ты о жизни? Думаешь ли ты о смерти? Что ты будешь делать когда поймешь что никому не нужен?

  11. Вверх #31
    Мне отчего-то кажется, что после таких примеров while(true) и пишут проги, жрущие все ресурсы.
    Смотрите функцию select(), она есть и в Винде и под ..nix-ами, благо сокеты все списывали с BSD.
    Смысл функции в том, что программа отдает управление системе и ожидает события(закончена передача данных, поступили данные, таймаут и т.п.)
    Вот по ней и надо делать while.
    "Есть речи - значенье темно иль ничтожно,
    но им без волненья внимать невозможно..."

  12. Вверх #32
    Если можете, дайте ссылку на хорошую статью по селекту (и асинхронным сокетам вообще) на русском. На английском не надо - сам имею.
    [url=www.warsword.od.ua][code]IC | XC
    ---+---
    NI | KA
    [/code][/url]

  13. Вверх #33
    Посетитель
    Пол
    Мужской
    Адрес
    Odessa
    Сообщений
    491
    Репутация
    13
    Утомил, ей-богу. Может за тебя еще программы писать? Учи английский, учи пользоватся поисковиками. F1 нажми, в конце концов.
    Думаешь ли ты о жизни? Думаешь ли ты о смерти? Что ты будешь делать когда поймешь что никому не нужен?

  14. Вверх #34
    Ссылку я тебе не дам, ищи русский перевод LPG(Linux Programmer Guide) - он есть, одно время сам им пользовался.
    "Есть речи - значенье темно иль ничтожно,
    но им без волненья внимать невозможно..."

  15. Вверх #35
    Цитата Сообщение от человекъ
    Ссылку я тебе не дам, ищи русский перевод LPG(Linux Programmer Guide) - он есть, одно время сам им пользовался.
    А бумажная версия есть? В ТиД, скажем, найти его реально?
    [url=www.warsword.od.ua][code]IC | XC
    ---+---
    NI | KA
    [/code][/url]

  16. Вверх #36
    Цитата Сообщение от Slaventius
    Утомил, ей-богу. Может за тебя еще программы писать? Учи английский, учи пользоватся поисковиками. F1 нажми, в конце концов.
    Я тебя писать за меня проги не просил. Я просил, если не дошло, чтобы если знаешь хорошие русские доки по теме - показал. Я знаю, у меня есть хорошие доки на инглише, и я с ним очень даже дружу (стараюсь, по крайней мере). Просто русский быстрее читается и осмысливается. Поэтому и попросил.
    ЗЫ Бывал я на ХакЗоне.Ру, так там в каждом третьем посте посыл в поисковики. По поводу и без повода. Хотя чаще всё же по поводу.
    ЗЗЫ Слово - серебро, молчание - золото.
    [url=www.warsword.od.ua][code]IC | XC
    ---+---
    NI | KA
    [/code][/url]

  17. Вверх #37
    Посетитель
    Пол
    Мужской
    Адрес
    Odessa
    Сообщений
    491
    Репутация
    13
    Послушай, не занимайся ерундой. Тебе постов 5 твердили названия функций про которые стоило просто сесть и вдумчиво прочитать, но судя по твоим последующим вопросам - ты этого не сделал. Может по ссылкам и пошел, но видимо это тебе мало что дало.
    Дальше больше, ты вывалил элементарный код который не работает как положено и просто попросил найти проблему. Очень хороший подход. А ты вообще пробовал в отладчике её запустить? Я думаю что нет. Потому что если бы попробовал то и вопроса как такового не возникло бы. О чем говорит такой подход? О лени и желании взять тему с наскока не вдумываясь. Дружить с доками мало - их еще желательно и читать. Так что, мой тебе дружеский совет - если по теме вопросов больше нет, то и флейма с бросаниями упреков не продолжай.
    Думаешь ли ты о жизни? Думаешь ли ты о смерти? Что ты будешь делать когда поймешь что никому не нужен?

  18. Вверх #38
    Короче, гадства наслушался и решился таки на тот шаг, неизбежность которого я всё больше чувствую. Решил купить бумажную книгу.
    Остановиться предварительно на
    UNIX: разработака сетевых приложений (Стивенс)
    79 гривен в тиде.
    Так вот. Может, у кого есть она, ну или хоть что-то по этой теме в бумаге - пишите (пм и мыло), постараемся договориться.
    [url=www.warsword.od.ua][code]IC | XC
    ---+---
    NI | KA
    [/code][/url]


Ответить в теме
Страница 2 из 2 ПерваяПервая 1 2

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения