ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #11  
Старый 12.07.2008, 01:05
izlesa
Участник форума
Регистрация: 03.01.2008
Сообщений: 156
Провел на форуме:
414311

Репутация: 110
Отправить сообщение для izlesa с помощью ICQ
По умолчанию

2SVAROG
Во-первых, это c-style код, несмотря на iostream
Во-вторых ... млин ... слов нету ... за такой код надо расстреливать на месте, и не делать скидок даже на недавность порыва изучения, тк это уже не нубство, а ... я даже не знаю как назвать. Такое впечатление, что ты наискосок просмотрел мануал и забил на него. Чего стоят &buf[0] или брейки в начале ветвления проверки ошибок.

В-третьих, после беглого просмотра этого "творения" выяснилось, что логика "несколькo" другая. Ты не понимаешь что пишешь? Разберись в логике программы, составь алгоритм на бумажке, досконально проверь его и уже тогда переноси его в код.

Я не разбираюсь в плюсах, но помоему подключенный в stdafx.h stdio.h перекрывает iostream.h, поэтому не работает cout.
А вообще основная ошибка в логике. Сервером ты пытаешься отправить строку, но отправляется один байт. Потом ты это количество же пытаешься отправить на сервер. Там, если бы работал cout выводился только один символ.
Т.е. в клиенте надо изменить send так

Код:
 send(my_sock, buff,strlen(buff), 0); // Будет посылать на сервер столько байт, сколько нужно
ЗЫ Внимательней на код посмотрел, сервер нормально отсылает это у тебя в while бардак. Ты что нибудь о приоритетности операций слышал? Или эту главу в книге пролистал? И то что выражение в while будет выполнятся справо налево ни сном ни духом. И следовательно в nsize будет заносится не кол-во полученных байт, а результат выражения != ...

Весь код яркая иллюстрация к тому, как нельзя делать ни в коем разе. До*баться можно к каждой строке.
Бери K&R или Прата и марш изучать язык нормально!
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Часто задаваемые вопросы по MySQL Серый PHP, PERL, MySQL, JavaScript 5 28.12.2006 18:26
Интернетчики задали российскому президенту очень странные вопросы podkashey Мировые новости 4 07.07.2006 16:53
Вопросы по Ipb 2.0 Voodoo_People Форумы 26 15.02.2005 22:57



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ