![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| dgolukas |
|
||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 50 Регистрация: 30.8.2009 Репутация: нет Всего: нет |
суть вопроса)
есть мессенджер который прекрасно отправляет пакеты и читает их методом Read
все было бы прекрасно, если бы этим методом они считывались вместе с пробелами, а так он читает только одну строку до пробела. я переписала метод вот так и он стал читать строки полностью, но перестал отправлять.
может быть есть еще варианты?? хотелось бы чтобы и пакеты отправлялись и читались целиком(( АПДЕЙТ!!!! ошибка оказывается не в этом классе, а вот здесь, почему-то считывает сообщение до первого пробела:
Это сообщение отредактировал(а) dgolukas - 7.2.2010, 19:52 |
||||||
|
|||||||
| andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 6 Всего: 33 |
думаю ошибка здесь. скажите, "sock.read" читает в "data.c_str()" объем равный "size" ? Добавлено через 2 минуты и 36 секунд кстати здесь утечка памяти. объект "header" не удаляется. или же он производится фабрикой/синглтоном? -------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
| dgolukas |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 50 Регистрация: 30.8.2009 Репутация: нет Всего: нет |
ммм.
вообще-то дату он же получает из пакета. а size пакета чуть выше выкачивается. т.е. вы думаете, у меня просто выход за границы, да?? .. щас проверку поставлю попробую кэтчем поймать. з.ы. andrew_121, мне кажется когда я доделаю этот мессенджер, я вам минимум ящик пива задолжаю)))) Это сообщение отредактировал(а) dgolukas - 6.2.2010, 23:28 |
|||
|
||||
| andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 6 Всего: 33 |
я думаю что переменная "size" имеет значение меньше чем нужно. потому пакет не полный. это только предположение.
а что за мессенджер такой? в чем-то особенный? да, по пиву было бы не плохо -------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
| dgolukas |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 50 Регистрация: 30.8.2009 Репутация: нет Всего: нет |
по теме вопроса. я поставила кэтч, он экспшн почему-то не выбрасывает но зато вызывает сразу дисконнект) наверное, в этом дело да. порою еще мессенджер - это просто клиент-серверное приложение на базе TCP/IP ну с собственным протоколом.. типа выпускной проект на курсах.. но я немного увлеклась и сделала вместо учебного проекта полноценное приложение) так вот. первая моя программа, если не считать лабораторных хелловорлдов и тому подобное а вы кст в каком городе базируетесь?)) з.ы. да где header утечка была. пофиксила) я фабрику не пользую.. я оставила в пакете enum и в PacketDispatcher прописала свитч) Это сообщение отредактировал(а) dgolukas - 6.2.2010, 23:54 |
|||
|
||||
| andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 6 Всего: 33 |
прикольно. обычно студенты не столь любят учиться по завершению, выложите проект куда-то? на гуглкод к примеру. написал в личку. -------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
| dgolukas |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 50 Регистрация: 30.8.2009 Репутация: нет Всего: нет |
в том-то и дело, что я не совсем студент. для себя пошла учить программинг, и увлеклась)) не думала, что так затянет. когда доведу до ума - скину вам обязательно) |
|||
|
||||
| andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 6 Всего: 33 |
крайне необычным синдром для девушки кто-то во флейме оч хотел познакомиться с девушкой увлекающейся IT. могу подсказать. задачки будет решать. а что?....и то польза Добавлено через 48 секунд что-то мы наоффтопили. щас придет дядя модератор, и всыпит нам по первое число -------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
| dgolukas |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 50 Регистрация: 30.8.2009 Репутация: нет Всего: нет |
наоффтопили хорошо- да))) не, я сама скоро любому решальщику фору дам такими темпами))) |
|||
|
||||
| NewDima |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 922 Регистрация: 20.2.2006 Где: <?here?> Репутация: нет Всего: 12 |
Эмм, это что? PacketHeader::getSize() возвращает размер чего? Наверное самого хеадера? (странно, зачем, если он по коду прямо зависит от типа пакета).
Смеяться не буду. Сначала заведена переменная pack класса (структуры?) Packet, а потом обращение к packet... Если опечатка, тогда зачем передавать параметры в конструктор, а потом их устанавливать еще отдельно? Второй код тоже, извините, ерунда похожая, тщательно не всматривался. З.Ы. ИМХО пытаться использовать инлайн для этого бредово =) |
||||||
|
|||||||
| dgolukas |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 50 Регистрация: 30.8.2009 Репутация: нет Всего: нет |
мммм std::cout с getSize() я впихнула, когда ошибку искала, чтобы выводил значение в консоли.) больше никакой смысловой нагрузки он не несет)) убрала локальный pack,да он вообще не в тему. не понимаю, в чем именно ерунда и где искать ошибку з.ы. инлайн я впихнула, когда написала реализацию метода в хиддере, и он очень слезно порсил файл спп)) |
|||
|
||||
| Леопольд |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 943 Регистрация: 17.6.2009 Репутация: 10 Всего: 13 |
-------------------- вопросов больше чем ответов |
|||
|
||||
| dgolukas |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 50 Регистрация: 30.8.2009 Репутация: нет Всего: нет |
ого, я про такое и не слышала никогда, спасибо!!!) вобщм, после длительного дебага выяснилось, что ошибка не в ридере и даже не в сендере, а в классе с графикой. а именно в том,что там юзается QString и я пока не поняла как можно безболезненно с сохранением инфы перевести стандартные строки в это вот чудо. собственно вот. все доходит все приходит, просто в браузере не отображается. со стандартными строками категорически работать отказывается выдавая эксепшн, что не может строки поставить в очередь за сим тему можно считать закрытой)) Это сообщение отредактировал(а) dgolukas - 8.2.2010, 00:45 |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |