tsdima писал(а): Есть только одна проблема: doClose у TCP_Connection уничтожает мультик изнутри себя, а этого делать как-бы нельзя. Решается установкой одноразового таймера перед этой точкой.
Ничего ета проблема не решается  как был глюк так и остался
Exception Exception in module C:\Program Files\HiAsm\************* at 00011963.
Access violation at address 00411963 in module '*******.exe'. Read of address 00A91880
Порабы всётаки зделать ревизию TCP_server(ex)
Вот я делал схему прокси сервера , так вот при закрытии соединения программа выпадает в осадок даже естли следовать твоему совету [b]tsdima[/b],
#sha Add(TCP_ServerEx,6413454,567,624) { ServerPort=54321 } BEGIN_SDK Add(EditMultiEx,4801721,21,21) { WorkCount=#6:##open| EventCount=#12:onEvent1=Лог| Width=867 Height=417 } Add(TCP_Connection,5577782,245,133) { link(onRead,9876670:doEvent1,[]) } Add(Hub,9876670,308,133) { OutCount=5 link(onEvent1,11477444:doWork1,[]) link(onEvent2,3188642:doString,[(485,146)(485,97)]) link(onEvent3,10884770:doValue,[(433,153)(433,223)]) link(onEvent4,5232752:doOpen,[(423,160)(423,279)]) link(onEvent5,5232752:doSend,[(414,167)(414,293)]) } Add(MultiElement,11477444,448,133) { link(onEvent1,9963022:doString,[]) } BEGIN_SDK Add(EditMulti,8420142,10,10) { EventCount=1 WorkCount=1 VarCount=1 Width=629 Height=270 link(doWork1,6948616:doSearch,[(40,16)(40,90)]) link(Var1,15768263:Value,[(16,198)(279,198)]) } Add(BlockFind,6948616,70,84) { IncludeBlock=1 StartBlock="Host: " EndBlock="\n\r" link(onSearch,12957010:doValue,[(163,90)(163,41)]) } Add(Host,345823,217,77) { link(onIPByHost,15768263:doValue,[]) link(HostName,12957010:Value,[]) } Add(Memory,15768263,273,84) { link(onData,8420142:onEvent1,[(472,90)(472,16)]) } Add(Memory,12957010,224,35) { link(onData,345823:doIPByHost,[(268,41)(268,65)(205,65)(205,90)]) } END_SDK Add(TCP_Client,5232752,448,273) { Port=80 link(onRead,685635:doEvent1,[]) link(onDisconnect,5666566:doTimer,[(492,293)(492,216)(177,216)(177,139)]) link(IP,13584460:Var2,[]) link(Data,10884770:Value,[]) } Add(Hub,685635,525,273) { OutCount=3 link(onEvent1,5577782:doSend,[(567,279)(567,323)(235,323)(235,146)]) link(onEvent2,2170435:doString,[]) } Add(HubEx,13469547,665,126) { Angle=3 link(onEvent,4801721:onEvent1,[(669,27)]) } Add(FormatStr,9963022,602,133) { Mask="Соединение с узлом \n\r*******************************************************************************************\n\r%1\n\r*******************************************************************************************" link(onFString,13469547:doWork2,[]) } Add(Memory,10884770,455,217) { } Add(FormatStr,3188642,602,91) { Mask="Отправляем запрос на сервер %1\n\r####################################################\n\r%2\n\r####################################################" link(onFString,13469547:doWork1,[(686,97)(686,139)]) link(Str1,13584460:Var1,[(608,79)(437,79)(437,184)]) } Add(FormatStr,2170435,602,280) { Mask="Получили данные от сервера %1\n\r!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n\r %2\n\r!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" link(onFString,13469547:doWork3,[(669,286)]) link(Str1,13584460:Var3,[(608,184)]) } Add(GetDataEx,13584460,441,175) { link(Data,11477444:Var1,[]) } Add(Timer,5666566,189,133) { Interval=1 Enable=1 AutoStop=1 link(onTimer,5577782:doClose,[]) } END_SDK
|