Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 07.04.2009, 22:22   #1
Core2Duo
Пользователь
 
Регистрация: 29.01.2009
Сообщений: 12
По умолчанию Многопоточное приложение на Indy

Работаю в Delphi 7, использую idtcpserver & idtcpclient.
По ходу написания программы возникли вопросы:
1) Не могу разобраться с принятием пакета от сервера клиентом (принимает один пакет и виснет программа).
2) Как сделать приложение многопоточным (клиент-программ будет 1+)
----------
Core2Duo вне форума
Старый 07.04.2009, 22:55   #2
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

1. Показывайте код
2. Приложение уже многопоточно: для каждого соединения клиента с серверов на сервере создается поток, в контексте которого и проводятся все операции с соединением.
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума
Старый 07.04.2009, 23:12   #3
Core2Duo
Пользователь
 
Регистрация: 29.01.2009
Сообщений: 12
По умолчанию

Код:
procedure TForm1.Timer1Timer(Sender: TObject);
var
s:string;
B:Boolean;
begin
  try
    s:=IdTCPClient1.ReadLn();
  except
    B:=true;
  end;
end;
ReadTimeOut - 1мс
------------------
Вопрос 2-ой был написан некорректно, как посылать пакеты определенной клиент программе, в данном случае ответ на запрос.
Core2Duo вне форума
Старый 08.04.2009, 08:19   #4
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

1. Виснет потому что используется redln, программа ждет #13#10
2. Создавать массиво активных соединений (на onconnect, хранить или сами потоки или connection -ы), и общаться внутри любого из них.
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума
Старый 08.04.2009, 11:39   #5
Core2Duo
Пользователь
 
Регистрация: 29.01.2009
Сообщений: 12
По умолчанию

#13#10 - должно быть в конце каждого пакета?
Лучше всего хотелось бы увидеть примеры по обоим вопросам.
Core2Duo вне форума
Старый 08.04.2009, 11:48   #6
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

1. Метод readln читает входящий буфер, пока не встретит признака окончани строки ( в Windows это последовательность символов #13#10)
2. У компонента IdTcpServer есть свойство Contexts-в старших версиях Indy и Threads в младших, которое хранит инормацию по всем активным соединениям.
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума
Старый 08.04.2009, 12:05   #7
Core2Duo
Пользователь
 
Регистрация: 29.01.2009
Сообщений: 12
По умолчанию

1)Пакет он и так видел и без #13#10, но проблема в том что он продолжает ожидать пакет и с виду кажется что подвис, как сделать нормальный прием пакетов от сервера?)
2) Я видел Threads, но у меня сейчас мало времени на его иследование, просьба написать примеры)

Последний раз редактировалось Core2Duo; 08.04.2009 в 12:08.
Core2Duo вне форума
Старый 08.04.2009, 12:22   #8
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Цитата:
1)Пакет он и так видел и без #13#10, но проблема в том что он продолжает ожидать пакет и с виду кажется что подвис, как сделать нормальный прием пакетов от сервера?)
Издеваетесь ?
читать
Цитата:
Метод readln читает входящий буфер, пока не встретит признака окончани строки ( в Windows это последовательность символов #13#10)
до просветления.
Цитата:
2) Я видел Threads, но у меня сейчас мало времени на его иследование, просьба написать примеры)
ну тогда надейтесь, что у кого- нибудь возникнет желание написать примеры.
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума
Старый 08.04.2009, 12:37   #9
Core2Duo
Пользователь
 
Регистрация: 29.01.2009
Сообщений: 12
По умолчанию

Я думал у вас оно возникнет, я думал тут и отписываются, что бы получить помощь!
С таким же успехом можно сказать - поищи где то тут http:\...
Я читал примеры кодов, тестил, пока что ни один нормально не работает, а для некоторых написать пример это 2-3 минуты...
Core2Duo вне форума
Старый 08.04.2009, 12:49   #10
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Цитата:
Я думал у вас оно возникнет, я думал тут и отписываются, что бы получить помощь!
именно помощь, вы правы, а не халяву.
Пока вы не сможете понять почему это
Цитата:
Метод readln читает входящий буфер, пока не встретит признака окончани строки ( в Windows это последовательность символов #13#10)
является ответом и причиной этого
Цитата:
1)Пакет он и так видел и без #13#10, но проблема в том что он продолжает ожидать пакет и с виду кажется что подвис, как сделать нормальный прием пакетов от сервера?)
дальше лучше и не пытаться. Никто за вас работу делать не будет. А если необходимо чтобы кто- то за вас что- то сделал, для этого есть раздел фриланс.
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как обновить indy 9 на indy 10 Пилигрим Компоненты Delphi 16 30.04.2010 10:11
INDY 10 [koyot] Работа с сетью в Delphi 17 30.01.2009 13:24
Indy 9 против Indy 10 OrdJONY Свободное общение 2 08.11.2008 20:28
Многопоточное соединение сервер-клиент ShadowMaster Работа с сетью в Delphi 5 15.08.2008 16:36
Многопоточное программирование madmax08 Общие вопросы .NET 4 15.07.2008 23:58