![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
UDP и всё такое
Shadow HuntEr © (2004-09-17 11:33:00)Скажите честно, вообще кто-либо работал с UDP и TCP/IP в КОЛе. У меня наверное Очень кривые руки, так как ничего не получилось... Возможны ли какие-то решения именно в КОЛе, даже уже написанные...
Vladimyr (2005-04-29 03:33:00) [1]2 Кладов (19.12.04 20:41) [21]
> в модулях Шахайло objects - см на рядом с основными архивами
> на моем сайте. Они еще и исправлены по сравнению с глючными
> версиями от Борланд (нет утечки памяти).
Да они тоже весьма глючные. Попробуйте просто
AllocateHWND;
DeallocateHWnd;
а потом ещё раз
AllocateHWND;
DeallocateHWnd;
- и тут же программа вылетит.
В процедуреFreeObjectInstance
пропущена строка
ifInstBlockCount = 0 then begin
InstFreeList := nil;
=(
admdenis (2005-01-07 14:49:00) [2]Тут можно скачать мою версию библиотек работают UDPServer и UDPClient возможно заработает TCPServer.
http://admdenis.narod.ru/KOLMyIndy.zip
admdenis (2005-01-06 15:14:00) [3]Ладно не нужно я сам всё доделал. Скоро выложу IdUDPServer.
Проблема была в том что класс TIdThread насладовался от TThread
а т.к. сам поток создаётся функцией NewThread то естественно она не вызывалась при наследовании :) я наследовал TIdThread от TObj а в TIdThread просто создаю TThread и прикручиваю к нему все события. Всвязи с этим у меня возник вопрос если обьект TSomeObject конструируется функцией NewSomeObject(someparams) то при наследовании TSomeObject2 = object (TSomeObject) метод NewSomeObject не вызывается. Получется что наследуются все методы и свойства а вот конструктор не наследуется. Как в кол с этим борятся? Или кол никак не позволяет наследовать конструктор?
admdenis (2005-01-06 05:10:00) [4]Люди поделитесь тем что у вас есть я тоже хочу поучаствовать.
Ато Indy UdpServer почти перевёл =)(для версии MyIndy) Запуститься запускается в вот поток что то не работает :(
Если UDPServer у вас рабочий скиньте на мыло admdenis@narod.ru
Очень нужно, спасибо.
Аид (2004-12-29 18:50:00) [5]при проверке оказалось что данные в объекте нормальные... но при передаче в мою функцию обработки
procedure UDPData(Sender: TObject; Socket: TSocket);
var
Data: string;
SockAddrIn: TSockAddrIn;
begin
Data:= UDP.Read(Socket, SockAddrIn);
MsgOK(Data);
end;
значение Socket совершенно другое. в чем может быть проблема?
Аид (2004-12-29 18:28:00) [6]блин. при проверке получилась сл. фигня: как только пакет приходит в UDPServer так возникает ошибка приложения.
при отладке оказалось что вылетает в
if Assigned(FOnData) then
FOnData(@Self, Socket);
чем-то его не устраивает @Self...
TOnData = procedure(Sender: TObject; Socket: TSocket) of object;
обработку привязываю:
procedure UDPData(Sender: TObject; Socket: TSocket);
var
Data: string;
SockAddrIn: TSockAddrIn;
begin
Data:= UDP.Read(Socket, SockAddrIn);
MsgOK(Data);
end;
begin
UDP:=NewUDPServer();
UDP.OnData:=TOnData(MakeMethod(UDP,@UDPData));
UDP.Port:='666';
UDP.Open;
form:=NewForm(Applet,'Server');
run(form);
UDP.Close;
end.
Gandalf (2004-12-20 22:22:00) [7]Пришло
Аид (2004-12-19 22:36:00) [8]2 Кладов: большое спасибо! Библиотеку портитровал полностью.
2 Gandalf: лови на мыло, то что получилось. Там переделанная на КОЛ сетевая библиотека с поддержкой протоколов TCP и UDP. Топик можно закрывать. ;)
Аид (2004-12-19 22:36:00) [9]2 Кладов: большое спасибо! Библиотеку поритровал полностью.
2 Gandalf: лови на мыло, то что получилось. Там переделанная на КОЛ сетевая библиотека с поддержкой протоколов TCP и UDP. Топик можно закрывать. ;)
Владимир Кладов (2004-12-19 20:41:00) [10]в модулях Шахайло objects - см на рядом с основными архивами на моем сайте. Они еще и исправлены по сравнению с глючными версиями от Борланд (нет утечки памяти).
Аид (2004-12-19 20:38:00) [11]thx 2 Кладов!!!
возник другой вопрос:
там ещё используется AllocateHWnd и DeallocateHWnd из библиотеки Classes. в КОЛ есть эквиваленты этих функций?
Владимир Кладов (2004-12-19 13:31:00) [12]@ Self
Аид (2004-12-19 12:32:00) [13]возник вопрос в переводе с Classes на TObj -
есть код вида:
procedure TCustomWSocket.SocketError(Error: integer);
begin
FLastError:= Error;
if Assigned(FOnError) then
АOnError(Self, FLastError, LastErrorDesc);
end;
это метод в в классе. при переделывании класса в объект (class(TComponent) в object(TObj)) ругается на Self... OnError описывается:
TOnError = procedure(Sender: TObject; Error: integer; Msg: string) of object;
Каким макаром можно избавиться от Self?
Gandalf (2004-12-16 09:36:00) [14]1) Про SysUtils и Classes знаю - просто не успел выдрать еще - но поскольку осталось не протестированным 2 модуля - то этот час близок.
2) Хорошего ничего нет, у каждого есть чтото свое. Мой вариант был сделан изначально глупо - и потому я его не развиваю - он немного упрощает конверт - хотя к его багам надо привыкать - а делать новый нет сил. У меня больших портов не так много осталось - ща TVZip ну и там по мелочам. Я все продвигаю KOL в оффициальный суппорт - например KOLICS/ICS cxCPU/KOLcxCPU - хотя пока не особо получаеться.
Аид (2004-12-15 18:46:00) [15]2 Gandalf:
она весит из-за привязки Classes и SysUtils... там ещё использовалась Forms, но она убралась почти безболезненно... вопрос возник другой: нет прог автоматом переводящих классы в объекты? TClass в TObj т.е. формат КОЛ?
Gandalf (2004-12-15 17:14:00) [16]KOLICS 0.8
[*] WebServer - теперь пашет :)
Плюс фиксы - ICMP,FTPServ,Ping...
Портинг почитай подходит к концу :В
Gandalf (2004-12-14 22:00:00) [17]KOLICS дает гдето столько же - но он пока сыроват. Хотя думаю сильно мне махину уменьшить не удастца. Замена Classes тебе поможет.
Аид (2004-12-14 11:16:00) [18]Кстати... нашел библиотеку сетевую...
ClientUDP
ServerUDP
ClientTCP
ServerTCP
пустое окно + библиотека - размер файла 84Кб <- это много или нормально? там остается Classes - заменой стандартной библеотеки на КОЛовскую - можно уменьшить размер?
Gandalf (2004-12-08 10:21:00) [19]Я заказал домен KOLnMCK.ru сайт теперь будет там - как выдадут.
Сейчас се скачать можно с ftp
ftp://kol:kol@80.92.100.21/
CSS (2004-12-08 00:01:00) [20]2Gandalf а откуда качать новый KOLICS?
а то http://kol.mastak.ru/мертвый.