Вверх ↑
Этот топик читают: Гость
Ответов: 2125
Рейтинг: 159
#31: 2007-12-26 19:32:18 ЛС | профиль | цитата
Dilma, в той схеме, что ты хотел в примеры скопировать после doSend лучше всё-таки не делать doClose (хаб удали и восстанови связь). Тогда вроде работает без ошибок, и если StrList исправлен, то и память не кушает. И свободное место лучше на диске С искать (а не на Е, как в схеме).
doClose сразу удаляет мультик, а лучше бы он делал это отложенно, через очередь событий. Проблема зарыта в TCP.pas, метод Close, если он вызывается извне, хорошо бы отложить посылкой соответствующего сообщения WM_USER+1. Т.е. моё предложение - переименовать Close и скрыть этот метод, и сделать другой Close, посылающий сообщение.
------------ Дoбавленo:

Только вот, правильность lparam там никак не проверяется, и если сокет уже был закрыт, второе закрытие (если было послано два сообщения о закрытии) чревато exception-ом. Особенно в том случае, если сам объект уже был (как в нашем случае) удалён.
------------ Дoбавленo:

Отсюда вытекает ещё одна проблема - если сокет был удалён, а в очереди сообщений ещё есть пришедшие данные, то та же фигня.
карма: 1

0
Администрация
Ответов: 15294
Рейтинг: 1518
#32: 2007-12-27 12:09:14 ЛС | профиль | цитата
tsdima, по хорошему от окна в TCP модуле лучше избавиться совсем и делать тоже самое через отдельный поток с организацией очереди сообщений скажем через pipe(или mail slot).
карма: 26
0
Гость
Ответов: 17029
Рейтинг: 0
#33: 2007-12-27 17:11:29 правка | ЛС | профиль | цитата


Редактировалось 7 раз(а), последний 2021-06-24 06:56:10
карма: 0

0
Ответов: 2125
Рейтинг: 159
#34: 2007-12-27 19:00:42 ЛС | профиль | цитата
Dilma писал(а):
от окна в TCP модуле лучше избавиться

Нет, окно делает одну очень важную вещь - синхронизацию с основной Thread. Таким образом, все callback-и вызываются в контексте основной нити. Это самый простой путь.
------------ Дoбавленo:

Я только одного не пойму: зачем было городить огород из персональных Thread на каждый сокет, когда можно было просто использовать WSAAsyncSelect
карма: 1

0
Гость
Ответов: 17029
Рейтинг: 0
#35: 2007-12-27 20:16:05 правка | ЛС | профиль | цитата


Редактировалось 7 раз(а), последний 2021-06-24 06:56:10
карма: 0

0
Администрация
Ответов: 15294
Рейтинг: 1518
#36: 2007-12-28 00:07:18 ЛС | профиль | цитата
Гость писал(а):
но я так и непонял что конкретно нужно сделать для того чтоб изображения грузились

нужно выдать то, что я написал выше.

tsdima писал(а):
Нет, окно делает одну очень важную вещь - синхронизацию с основной Thread

тогда уж через WSAEventSelect. Синхронизация это конечно хорошо, но накладывать из-за этого требование наличия очереди сообщений в проекте как-то не очень правильно.
карма: 26
0
Ответов: 563
Рейтинг: 54
#37: 2007-12-28 12:41:01 ЛС | профиль | цитата
Dilma, то есть сначало отправить клиенту то что ты написал, а потом слать страницы?
карма: 0

0
Администрация
Ответов: 15294
Рейтинг: 1518
#38: 2007-12-28 13:25:36 ЛС | профиль | цитата
что это значит? Если есть запрос на картинку - отправляем картинку. Есть на html - отправляем страницу html. По-моему тут имеется некоторое непонимание работы сервера http и клиента, обращающегося к нему за файлами...
карма: 26
0
Ответов: 5446
Рейтинг: 323
#39: 2007-12-28 13:38:01 ЛС | профиль | цитата
Dilma, а ты что, только что это понял?

Ещё раз (миллион первый на этом форуме): чтобы понять, как сделать HTTP-сервер, надо понять, как он работает. Для этого надо прочитать и понять спецификацию протокола - RFC 2068. Пока этого не сделано - дальнейший разговор бесполезен.
карма: 1

0
Ответов: 563
Рейтинг: 54
#40: 2007-12-28 13:47:56 ЛС | профиль | цитата
всё понял
------------ Дoбавленo:

дайте заодно bass.dll
карма: 0

0
Ответов: 5446
Рейтинг: 323
#41: 2007-12-28 13:51:52 ЛС | профиль | цитата
Бери и пользуйся
карма: 1

0
Ответов: 563
Рейтинг: 54
#42: 2007-12-28 15:40:12 ЛС | профиль | цитата
спасибо
------------ Дoбавленo:

и за одно чтоб не создавай новый топик хотел спросить как сделать что то вроде voice (переговорника).
хотелось бы замутить что то вроде радио как в WinAmp'e или JetAudio.
------------ Дoбавленo:

Dilma, я знаю ты умный!!! помоги плиз....
карма: 0

0
Ответов: 2125
Рейтинг: 159
#43: 2007-12-28 16:16:05 ЛС | профиль | цитата
Dilma писал(а):
требование наличия очереди сообщений

Да, из-за этого у нас и в сервисах сокеты не работают.
карма: 1

0
Ответов: 563
Рейтинг: 54
#44: 2007-12-28 16:40:49 ЛС | профиль | цитата
как преобразовать картинку в бинарные данные?
карма: 0

0
Ответов: 9906
Рейтинг: 351
#45: 2007-12-28 16:53:05 ЛС | профиль | цитата
tsdima писал(а):
Да, из-за этого у нас и в сервисах сокеты не работают

Кстати, не вижу серьезных аргументов, чтобы не присвоить аплету окошко (PControl естественно) c парентом=-3
OnlyForMessages - вроде так называется, не помню точно...
карма: 9

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)