Форум русскоязычного сообщества Ubuntu


Автор Тема: Непонятный ноль  (Прочитано 615 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн [DarkNet]Alpha

  • Автор темы
  • Активист
  • *
  • Сообщений: 987
  • Эмоциональный эльдар
    • Просмотр профиля
    • EBM-радио
Непонятный ноль
« : 25 Март 2012, 15:37:17 »
Здравствуйте, уважаемые.
Решил я изучить работу с сетью. Каюсь, пока что winsock, но надо с чего-то начинать.
Проблема в том, что нагугленный и измененный клиент отправляет лишний '\0', а я не могу понять, откуда он берется.
За основу я брал этот код:
(Нажмите, чтобы показать/скрыть)

Подскажите, пожалуйста.
« Последнее редактирование: 25 Март 2012, 16:11:47 от yorik1984 »

Оффлайн hippi90

  • Активист
  • *
  • Сообщений: 433
    • Просмотр профиля
Re: Непонятный ноль
« Ответ #1 : 25 Март 2012, 19:43:51 »
Что-то я понять не могу, nsize - это кол-во байт, полученных от сервера, после этого в буфер читается новая строка, очевидно, произвольного размера, а серверу отдается строка размером снова nsize, почему?
Далее, &buff[0] - это гениально, попахивает полным незнанием С.

Оффлайн [DarkNet]Alpha

  • Автор темы
  • Активист
  • *
  • Сообщений: 987
  • Эмоциональный эльдар
    • Просмотр профиля
    • EBM-радио
Re: Непонятный ноль
« Ответ #2 : 25 Март 2012, 20:59:42 »
Что-то я понять не могу, nsize - это кол-во байт, полученных от сервера, после этого в буфер читается новая строка, очевидно, произвольного размера, а серверу отдается строка размером снова nsize, почему?
Далее, &buff[0] - это гениально, попахивает полным незнанием С.
Да там код корявый, я его исправлял много. Но функции сети расписаны вроде нормально.
Мне бы по сути - нолик отловить.

Оффлайн hippi90

  • Активист
  • *
  • Сообщений: 433
    • Просмотр профиля
Re: Непонятный ноль
« Ответ #3 : 25 Март 2012, 22:58:20 »
Ну так проверьте, где у вас ноль образуется, если в send() передаётся правильная строка, значит это внутри WinSock добавляется ноль.

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
Re: Непонятный ноль
« Ответ #4 : 26 Март 2012, 08:17:32 »
Начни без мекрософтовских извратов. сильно проще. рекомендую.
Поверьте, нигде там ничего не добавляется.

// Вот на этом самом месте, после первого получения сообщения от сервера, и отправляется 0
может и отправляется. но вот на этом самом месте ты этого знать не можешь. давай уже определись что там где происходит.

    // передаем строку клиента серверу
      send(my_sock,&buff[0],nsize,0);
так строки не передают. слишком наивный вариант

Оффлайн [DarkNet]Alpha

  • Автор темы
  • Активист
  • *
  • Сообщений: 987
  • Эмоциональный эльдар
    • Просмотр профиля
    • EBM-радио
Re: Непонятный ноль
« Ответ #5 : 26 Март 2012, 10:06:55 »
Товарищи, ну не придирайтесь вы к коду. Он изменился чуть более, чем наполовину. Я знаю, что криво. Это не мой код, я не идиот :)

Оффлайн hippi90

  • Активист
  • *
  • Сообщений: 433
    • Просмотр профиля
Re: Непонятный ноль
« Ответ #6 : 26 Март 2012, 13:41:00 »
Товарищи, ну не придирайтесь вы к коду. Он изменился чуть более, чем наполовину. Я знаю, что криво. Это не мой код, я не идиот :)
Так выкладывай свой код, телепаты в отпуске, гадать, что ты там изменил, никто не будет.

 

Страница сгенерирована за 0.103 секунд. Запросов: 25.