![]() |
|
Модераторы: bsa |
![]()
|
|
| Owyn |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 11.5.2009 Репутация: нет Всего: нет |
такая проблема, предлагали либо использовать select либо запустить фтп все в отдельном потоке, без mfc, без .net, xx, погуглил, посмотрел примеры но так ничего и не вышло )= прошу помощи, вот код моего фтп,
ftp.h
Это сообщение отредактировал(а) Owyn - 26.5.2009, 17:07 Присоединённый файл ( Кол-во скачиваний: 8 )
ftp.cpp 27,50 Kb |
|||
|
||||
| andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 10 Всего: 33 |
Чё-то я мэйн не нашел.
Показывай. -------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
| Owyn |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 11.5.2009 Репутация: нет Всего: нет |
мэйн:
|
|||
|
||||
| andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 10 Всего: 33 |
Передумал...
Это сообщение отредактировал(а) andrew_121 - 26.5.2009, 19:06 -------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
| Owyn |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 11.5.2009 Репутация: нет Всего: нет |
а что передумал? =\
*был бы рад примеру как это сделать, тк у самого не получилось, первый раз общаюсь с multithreading |
|||
|
||||
| andrew_121 |
|
||||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 10 Всего: 33 |
Owyn, Так я написал. Потом подумал еще разок, понял что не верно.
Идея вот какая. В твоем объекте, тебе нужно создать поток, в который нужно поместить функции которые работают с сокетами. Поместить их туда не сложно, но вот как им передавать аргументы, это вопрос. Само простое, это создать структуру которая будет содержать параметры. Объявить на нее глобальный указатель используя volatile. Но в основном потоке тебе придется позаботится о синхронизации. Кароче не то Добавлено @ 00:55 Я в таких случаях наследуюсь от: lthread.h
lthread.cpp
Перегружаю run(). Добавлено через 10 минут и 11 секунд Да. И типы подправь! Это сообщение отредактировал(а) andrew_121 - 27.5.2009, 00:56 -------------------- Удалил аккаунт. Прощайте! |
||||
|
|||||
| Owyn |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 11.5.2009 Репутация: нет Всего: нет |
хотя бы сервер и логин\пароль бы да, неплохо бы передавать функции, хотя не обязательно, можно и без этого, а имена файлов придумываются программой же, т.е. можно просто вшить побольше кода в поток, мне бы сейчас хоть пример как объявнить, создать, засунуть функциии в поток надо, смотрел на гугле и мсдн, но там либо было для MFC, либо совсем неясно как функции засовывать, и еще были примеры которые не компилируются пс - а разве глобальные переменные нельзя использовать в другом потоке? ну если объявить их рядом с инклюдами, а дать значение уже потом |
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 35 Всего: 223 |
Тебе нужно ВСЮ работу с ftp засунуть в отдельный поток целиком. Т.е. поток должен стартовать, делать что надо на ftp (БЕЗ общения с основной программой) и завершаться.
Т.е. как то так
Если же нужно взаимодействие ftp потока с остальной программой в процессе жизни этого потока, то нужно продумывать схему их синхронизации, она будет зависить от конкретного использования ftp в программе |
|||
|
||||
| Owyn |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 11.5.2009 Репутация: нет Всего: нет |
а как определить функции фтп в потоке? ведь как я понял поток не может просто так взаимодействовать с основным потоком программы, а все функции то внутри него определены, а int ftp_thread(void*) работает как main, просто вызывая их, как определить их локально в этом новом потоке? пс - параметры __begintrhread как раз выдавали мне ошибку компиляции когда я делал по простым примерам =\
|
|||
|
||||
| azesmcar |
|
||||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 52 Всего: 211 |
никак..поток видет все функции
смотря что имеется ввиду. Поток пользуется адресным пространством процесса, все потоки одного процесса могут обращатся к одной переменной. Но тут может понадобится синхронизация.
в МСДН полно примеров |
||||
|
|||||
| Owyn |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 11.5.2009 Репутация: нет Всего: нет |
есть глобально определенные char и string, их значения должны меняться только по заверщению допольнительного фтп потока, можно ли доп. потоку брать их значения? |
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 52 Всего: 211 |
Что можно а чего нельзя зависит от логики программы. Если вам нужно прочитать уже обновленные данные - тогда синхронизируйте.. WaitForSingleObject |
|||
|
||||
| xvr |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 35 Всего: 223 |
Да |
||||
|
|||||
| Owyn |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 11.5.2009 Репутация: нет Всего: нет |
о, как в мсдн конечно не заработало, но посмотрев на ошибку вспомнил что такая уже была, просто дописал __cdecl и заработало) спс всем
|
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 52 Всего: 211 |
Owyn
МСДН и читать тоже надо |
|||
|
||||
| Owyn |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 11.5.2009 Репутация: нет Всего: нет |
это они между строк где то пишут)) в их примерах нефига про это не было
|
|||
|
||||
| andrew_121 |
|
|||
![]() Кодофей ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3448 Регистрация: 3.1.2008 Репутация: 10 Всего: 33 |
-------------------- Удалил аккаунт. Прощайте! |
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |