Показать сообщение отдельно
  #4  
Старый 27.12.2013, 09:50
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

Цитата:
Сообщение от alanatolich
Переделал, но все равно выдает ошибку.

[DCC Error] mypotok.pas(16): E2065 Unsatisfied forward or external declaration: 'TMyThread.ClientSocketRead'
Тебе надо переписать объявление процедуры ниже по коду. Метод класса должен "раскрываться" как-то так:
Код:
procedure TMyThread.ClientSocketRead(Sender: TObject; Socket: TCustomWinSocket);
begin
end;
Цитата:
Расскажите что представляют из себя асинхронный (неблокируемый)/синхронный (блокируемый) сокет. Расскажите в чем разница использования асинхронный (неблокируемый)/синхронный (блокируемый) сокет. Почему не правильно использовать асинхронный (неблокируемый) сокет в потоке?
Всё просто. Синхронный выполняется в одном потоке с программой, что приводит к тому, что при работе с этим сокетом программа "подвисает". Оно и понятно - пока не отработает часть с сокетами, для самой программы ресурсов выделять никто не будет.
В случае с асинхронными сокетами сразу выделяется отдельный поток, в котором работает вся сетевая часть. А взаимодействие с программой происходит через вызовы т.н. "каллбэков", которые (при правильном построении кода) совершенно не мешают основной программе. Именно поэтому использование асинхронных сокетов в потоке не то, что бы "неправильно", а просто бессмысленно...
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj
Ответить с цитированием