Вверх ↑
Этот топик читают: Гость
Ответов: 2125
Рейтинг: 159
#1: 2008-03-19 22:36:42 ЛС | профиль | цитата
Решил я переделать сабж. Без дополнительных потоков, и на основе WSAAsyncSelect. Вроде работает.
Основная причина - имеющийся TCP.pas плохо переносит постоянное создание и удаление сокетов, которое бывает в динамических мультиках.
Ещё предлагается такое изменение hiTCP_Client.pas


#pas
0: _hi_OnEvent(_event_onRead,integer(buf^));
1:
begin
SetLength(s,Count);
CopyMemory(@s[1], buf, Count);
_hi_OnEvent(_event_onRead,s);
end;
2: _hi_OnEvent(_event_onRead,real(buf^));
Чтобы строки с нулями посередине правильно передавались.
карма: 1

1
файлы: 1tcp_2_0.rar [1.9KB] [205]
Голосовали:Konst
Ответов: 9906
Рейтинг: 351
#2: 2008-03-19 22:54:49 ЛС | профиль | цитата
tsdima, ну а чего не вносишь-то, непойму никак

Тоже самое, про динамическую корректность HTTP_Get, VBJScript - ты же в них лучше всех понимаешь

карма: 9

0
Ответов: 2125
Рейтинг: 159
#3: 2008-03-19 23:32:04 ЛС | профиль | цитата
А сабж тестировать надо.
карма: 1

1
Голосовали:Konst
Ответов: 9906
Рейтинг: 351
#4: 2008-03-19 23:35:37 ЛС | профиль | цитата
Так я не только про сабж...
карма: 9

0
Ответов: 2125
Рейтинг: 159
#5: 2008-03-19 23:36:36 ЛС | профиль | цитата
А "не только" уже там.
карма: 1

0
Ответов: 9906
Рейтинг: 351
#6: 2008-03-19 23:40:28 ЛС | профиль | цитата
HTTP_Get, VBJScript
не заметил пока....
карма: 9

0
Главный модератор
Ответов: 2999
Рейтинг: 396
#7: 2008-03-20 12:32:24 ЛС | профиль | цитата
Во-во! Молчит как партизан на допросе.
карма: 6
Дорогу осилит идущий. Install/Update HiAsm.NET
0
Ответов: 2125
Рейтинг: 159
#8: 2008-05-15 19:35:21 ЛС | профиль | цитата
Исправлена ошибка. Теперь вроде стабильно работает.
карма: 1

1
Голосовали:Konst
Администрация
Ответов: 15295
Рейтинг: 1519
#9: 2008-05-15 22:36:46 ЛС | профиль | цитата
любители пересылать мегабайты данных проверят как это стабильно работает...
карма: 27
0
Ответов: 2125
Рейтинг: 159
#10: 2008-08-15 15:31:01 ЛС | профиль | цитата
Хотелось бы
------------ Дoбавленo:

Отзывов нет, но всё равно: новая версия.
карма: 1

0
файлы: 1tcp_2_1.rar [2KB] [196]
Главный модератор
Ответов: 2999
Рейтинг: 396
#11: 2008-08-16 00:19:05 ЛС | профиль | цитата
Так что получается, предыдущая версия не появлялась на SVN?
------------ Дoбавленo:

Да, отличия кардинальные. Странно, что в других ветках форума обсуждается как всё до сих пор плохо с передачей больших файлов.
Видимо никто из заинтересованных не читал этого поста.
карма: 6
Дорогу осилит идущий. Install/Update HiAsm.NET
0
Ответов: 893
Рейтинг: 18
#12: 2008-08-16 01:19:09 ЛС | профиль | цитата
tsdima писал(а):
Отзывов нет, но всё равно: новая версия.

Будут отзывы вот протестирую только....
карма: 0
Время верстки: %cr_time% Текущее время: %time%
0
Главный модератор
Ответов: 2999
Рейтинг: 396
#13: 2008-09-22 11:16:33 ЛС | профиль | цитата
tsdima писал(а):
Отзывов нет, но всё равно: новая версия.

Предлагаю выложить на SVN для ускорения тестирования. Откат можно будет сделать всегда.
карма: 6
Дорогу осилит идущий. Install/Update HiAsm.NET
0
Разработчик
Ответов: 26163
Рейтинг: 2127
#14: 2008-09-22 12:05:38 ЛС | профиль | цитата
Nic, мое мнение, не надо, рано еще. Например, я сейчас прогнал на своей проге, так вот компонент TCP_Server отказался работать в динамическом мультике с эти юнитом. Вернул старый, работает прекрасно.

------------ Дoбавленo:


tsdima, кстати, проверь этот юнит в динамических мультиках, создав N количество TCP серверов c разными портами, у меня ни один не захотел работать. Коннекты создаются, сервера видят клиентов, но ничего никуда не передается.

------------ Дoбавленo:


Вот пример, который работает со старым юнитом TCP, и не работает с новым


Add(MainForm,12550039,168,112)
{
link(onCreate,5550405:doEnum,[])
}
Add(MultiElementEx,9100479,357,126)
{
Mode=1
link(onRead,2035752:doAdd,[(415,132)(415,111)])
link(onConnect,3008540:doAdd,[(415,139)(415,181)])
}
BEGIN_SDK
Add(EditMultiEx,2923648,21,21)
{
WorkCount=#5:##add|
EventCount=#6:onRead|9:onConnect|
Point(##add)
link(##add,4816290:doEvent1,[(53,27)(53,48)])
}
Add(TCP_Server,6315885,147,126)
{
link(onRead,2923648:onRead,[(250,132)(250,27)])
link(onConnect,235507:doString,[])
link(Port,1425605:Var2,[])
}
Add(Memory,14877717,154,42)
{
}
Add(Hub,4816290,84,42)
{
link(onEvent1,14877717:doValue,[])
link(onEvent2,6315885:doOpen,[(132,55)(132,132)])
}
Add(FormatStr,235507,196,133)
{
Mask="%1 : %2"
link(onFString,2923648:onConnect,[(274,139)(274,34)])
link(Str2,1425605:Var3,[(209,100)])
}
Add(GetDataEx,1425605,147,91)
{
link(Data,14877717:Value,[])
}
END_SDK
Add(ListBox,3370850,252,49)
{
Left=10
Top=10
Width=120
Height=120
Strings=#4:7777|4:7766|
}
Add(Timer,3877434,154,294)
{
link(onTimer,16267695:doEvent1,[])
}
Add(ListBox,3008540,441,175)
{
Left=135
Top=10
Width=120
Height=120
}
Add(TCP_Client,11266538,350,280)
{
Port=7777
IP="127.0.0.1"
}
Add(Button,6750435,266,252)
{
Left=10
Top=180
Caption="7777"
link(onClick,11266538:doOpen,[(324,258)(324,286)])
}
Add(Button,3770758,266,378)
{
Left=10
Top=205
Caption="7766"
link(onClick,3241516:doOpen,[])
}
Add(Hub,16267695,210,294)
{
link(onEvent1,8827271:doData,[])
link(onEvent2,1127214:doData,[(254,307)(254,342)])
}
Add(DoData,8827271,266,294)
{
Data=String(7777)
link(onEventData,11266538:doSend,[])
}
Add(DoData,1127214,266,336)
{
Data=String(7766)
link(onEventData,3241516:doSend,[(324,342)(324,398)])
}
Add(TCP_Client,3241516,350,378)
{
Port=7766
IP="127.0.0.1"
}
Add(ArrayEnum,5550405,266,126)
{
link(onItem,9100479:##add,[])
link(Array,3370850:Array,[])
}
Add(ListBox,2035752,441,105)
{
Left=135
Top=135
Width=120
Height=120
}


карма: 22

0
Ответов: 2125
Рейтинг: 159
#15: 2008-09-26 15:22:45 ЛС | профиль | цитата
nesco писал(а):
Вот пример, который работает со старым юнитом TCP, и не работает с новым

nesco, скачай ещё раз аттач.
карма: 1

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