Вверх ↑
Этот топик читают: Гость
Ответов: 59
Рейтинг: 0
#1: 2020-12-28 17:40:10 ЛС | профиль | цитата
Всем доброго настроения. Все еще пытаюсь организовать скачивания файла с сервера на конкретный клиент. Не работает ни передача текста ни файлов. Есть схема
клиент

Add(MainForm,2953706,161,126)
{
Width=536
Height=507
Caption="TCP client"
BorderStyle=1
Position=1
}
Add(Button,2774663,161,378)
{
Left=165
Top=10
Width=100
Caption="Подключиться"
Data=String(Подключение...)
link(onClick,14781916:doEvent1,[])
}
Add(Button,407315,154,448)
{
Left=275
Top=10
Width=100
Caption="Отключиться"
Data=String(Отключено)
link(onClick,15325680:doEvent1,[])
}
Add(Button,363541,287,126)
{
Left=5
Top=145
Width=105
Caption="Отправить"
Data=String(Отправка...)
link(onClick,1499700:doEvent1,[])
}
Add(Memo,8206700,441,63)
{
Left=5
Top=45
Width=340
Height=95
Strings=#1:1|
ScrollBars=3
}
Add(Edit,6390342,448,322)
{
Left=5
Top=10
Width=100
Text="127.0.0.1"
}
Add(Edit,2377616,455,364)
{
Left=110
Top=10
Text="5000"
}
Add(TCPClient,14703574,441,427)
{
IP="127.0.0.1"
AsyncEvents=1
Point(onErrorConnect)
Point(onErrorSend)
Point(doStopReceiving)
Point(doStartReceiving)
Point(doAbortSend)
Point(onProgress)
link(onReceive,1211794:doWork,[(499,433)(499,419)])
link(onSend,8195782:doEvent1,[])
link(onConnect,4044729:doData,[(639,447)(639,524)])
link(onDisconnect,3294831:doData,[(616,454)(616,573)])
link(IP,6390342:Text,[])
link(Port,2377616:Text,[])
link(onErrorConnect,10002025:doStrCat,[(587,461)(587,629)])
link(onErrorSend,10538828:doEvent1,[(565,468)(565,671)])
link(onProgress,15201332:doWork,[])
}
Add(StrCat,1569445,686,665)
{
Str1="Ошибка отправки: "
link(onStrCat,9017334:doWork,[])
}
Add(StrCat,10002025,672,623)
{
Str1="Ошибка подключения: "
link(onStrCat,653748:doWork,[])
}
Add(DoData,3294831,672,567)
{
Data=String(Соединение разорвано)
link(onEventData,10577613:doWork,[])
}
Add(DoData,4044729,672,518)
{
Data=String(Подключено)
link(onEventData,8420748:doWork,[])
}
Add(DoData,595464,742,434)
{
Data=String(Данные отправлены)
link(onEventData,9703980:doWork,[])
}
Add(Label,16606011,161,182)
{
Left=5
Top=170
Width=158
Height=17
Caption="Принятые от сервера данные:"
}
Add(Label,5144598,161,231)
{
Left=360
Top=40
Width=26
Height=17
Caption="Лог:"
}
Add(LineBreakEx,9017334,735,665)
{
Caption="log"
}
Add(LineBreakEx,9703980,798,434)
{
Caption="log"
}
Add(LineBreakEx,8420748,721,518)
{
Caption="log"
}
Add(LineBreakEx,653748,721,623)
{
Caption="log"
}
Add(LineBreakEx,10577613,721,567)
{
Caption="log"
}
Add(Hub,15325680,210,448)
{
link(onEvent1,14703574:doDisconnect,[])
link(onEvent2,2965968:doWork,[])
}
Add(LineBreakEx,2965968,238,455)
{
Caption="log"
}
Add(Hub,1499700,350,126)
{
link(onEvent1,11014464:doWork,[])
link(onEvent2,1052164:doData,[])
}
Add(LineBreakEx,11014464,399,126)
{
Caption="log"
}
Add(Hub,14781916,231,378)
{
link(onEvent1,680924:doWork,[])
link(onEvent2,14703574:doConnect,[(324,391)(324,447)])
}
Add(LineBreakEx,680924,273,378)
{
Caption="log"
}
Add(DoData,1052164,441,133)
{
Data=String()
link(onEventData,12592333:doWork,[])
link(Data,8206700:Text,[])
}
Add(Button,4302012,294,469)
{
Left=450
Top=415
Width=70
Caption="Отмена"
link(onClick,14425358:doEvent1,[])
}
Add(LineBreakEx,1002743,343,413)
{
Caption="senda"
Type=1
link(OnEvent,14703574:doSendAsync,[(416,419)(416,440)])
}
Add(LineBreakEx,12592333,497,133)
{
Caption="senda"
}
Add(InfoTip,15513282,273,28)
{
Info=#15:Отправка строки|
Width=309
Height=165
}
Add(LineBreakEx,9516814,949,406)
{
Caption="on_rec"
Type=1
link(OnEvent,13235102:doUnPack,[])
}
Add(LineBreakEx,1211794,525,413)
{
Caption="on_rec"
}
Add(InfoTip,5631575,942,224)
{
Info=#12:Прием файлов|
Width=491
Height=256
}
Add(ProgressBar,9353723,987,56)
{
Left=5
Top=440
Width=515
Smooth=1
ProgressColor=-16777203
Point(doMax)
}
Add(LineBreakEx,15275983,917,77)
{
Caption="max"
Type=1
link(OnEvent,9353723:doMax,[(972,83)(972,69)])
}
Add(LineBreakEx,15201332,490,469)
{
Caption="progr"
}
Add(LineBreakEx,12115097,910,56)
{
Caption="progr"
Type=1
link(OnEvent,9353723:doPosition,[])
}
Add(LineBreakEx,7482726,686,441)
{
Caption="progr"
}
Add(InfoTip,7205773,896,28)
{
Info=#16:Панель прогресса|
Width=155
Height=95
}
Add(Hub,8195782,651,434)
{
link(onEvent1,595464:doData,[])
link(onEvent2,7482726:doWork,[])
}
Add(LineBreakEx,449540,637,672)
{
Caption="progr"
}
Add(Hub,10538828,602,665)
{
link(onEvent1,1569445:doStrCat,[])
link(onEvent2,449540:doWork,[])
}
Add(LineBreakEx,1938713,385,476)
{
Caption="progr"
}
Add(Hub,14425358,350,469)
{
link(onEvent1,14703574:doAbortSend,[])
link(onEvent2,1938713:doWork,[])
}
Add(ListBox,7855383,756,63)
{
Left=360
Top=60
Width=160
Height=345
}
Add(Button,15157963,700,70)
{
Left=440
Top=35
Width=80
Caption="Очистить"
link(onClick,7855383:doClear,[])
}
Add(LineBreakEx,1409001,616,56)
{
Caption="log"
Type=1
link(OnEvent,1315586:doEvent1,[])
}
Add(InfoTip,3984338,609,28)
{
Info=#3:Log|
Width=260
Height=158
}
Add(If_else,10863870,763,140)
{
Op2=Integer(30)
link(onTrue,7381714:doData,[])
link(Op1,7855383:Count,[])
AddHint(-79,19,27,13,Op2)
}
Add(DoData,7381714,812,140)
{
Data=Integer(0)
link(onEventData,7855383:doDelete,[(856,146)(856,128)(743,128)(743,83)])
}
Add(Hub,1315586,665,56)
{
link(onEvent1,10863870:doCompare,[(692,62)(692,146)])
link(onEvent2,7855383:doAdd,[])
}
Add(StreamUnPack,13235102,1026,406)
{
DataCount=#10:тип данных|6:данные|0:|
link(onUnPack,4233687:doEvent,[])
}
Add(IndexToChanel,4233687,1082,406)
{
Count=4
Point(Index)
Point(Data)
link(onEvent1,9252309:doFileName,[(1179,412)(1179,293)])
link(onEvent2,958573:doCopy,[(1194,419)(1194,251)])
link(onEvent3,4456694:doAdd,[])
link(Index,13235102:тип данных,[(1088,394)(1073,394)(1073,454)(1032,454)])
link(Data,13235102:данные,[(1095,389)(1067,389)(1067,450)(1039,450)])
}
Add(SDialog,9252309,1271,280)
{
Title="сохранить принятые данные в файл"
Point(doFileName)
link(onExecute,15993375:doValue,[])
}
Add(MemoryStream,958573,1222,245)
{
link(onCopy,9252309:doExecute,[(1262,251)(1262,286)])
}
Add(FileStream,968047,1327,343)
{
Mode=2
Point(doCopyFromStream)
link(FileName,15993375:Value,[])
}
Add(Memory,15993375,1327,280)
{
link(onData,329189:doData,[(1377,286)(1377,386)(1213,386)(1213,349)])
}
Add(DoData,329189,1222,343)
{
link(onEventData,5559598:doEvent1,[])
link(Data,958573:Stream,[])
}
Add(Hub,5559598,1285,343)
{
OutCount=3
link(onEvent1,968047:doOpen,[])
link(onEvent2,968047:doCopyFromStream,[(1317,356)(1317,363)])
link(onEvent3,968047:doClose,[(1317,363)(1317,356)])
}
Add(Label,13327372,1285,420)
{
Left=185
Top=170
Width=90
Color=12639424
Caption="принятый текст:"
AutoSize=1
}
Add(RichEdit,4456694,1236,420)
{
Left=35
Top=220
Width=150
Height=125
Color=12639424
ScrollBars=2
}
сервер

Add(MainForm,2953706,21,105)
{
Width=638
Height=700
Caption="server"
BorderStyle=1
}
Add(Button,15114168,392,315)
{
Left=100
Top=5
Width=120
Caption="Запустить сервер"
link(onClick,6777519:doStartServer,[(456,321)(456,349)])
}
Add(Button,9081553,203,301)
{
Left=350
Top=5
Width=120
Caption="Остановить сервер"
Data=String(Сервер остановлен)
link(onClick,16229820:doEvent1,[])
}
Add(Button,363541,217,168)
{
Left=195
Top=235
Width=125
Caption="Отправить всем"
Data=String(Отправляю всем...)
link(onClick,15003814:doEvent1,[])
}
Add(TCPServer,6777519,490,336)
{
AsyncEvents=1
Point(doCloseAll)
Point(Port)
Point(onSend)
Point(onStartServer)
Point(onErrorStart)
Point(onErrorSend)
Point(doSendAll)
Point(doSendAsync)
Point(doSendAllAsync)
Point(doStopListen)
Point(doAbortSendAll)
Point(onProgress)
link(onReceive,1211794:doWork,[(577,342)(577,328)])
link(onClientConnect,9688387:doEvent1,[(754,349)(754,258)])
link(onClientDisconnect,1787300:doEvent1,[])
link(ClientID,13188730:getVar,[])
link(Port,12063275:Text,[])
link(onSend,6421089:doString,[(815,363)(815,482)])
link(onStartServer,4044729:doData,[])
link(onErrorStart,6804384:doStrCat,[(667,377)(667,419)])
link(onErrorSend,6826164:doString,[(651,384)(651,503)])
link(onProgress,1938713:doWork,[])
}
Add(DoData,4044729,693,364)
{
Data=String(Сервер запущен)
link(onEventData,10192232:doWork,[])
}
Add(StrCat,6804384,693,413)
{
Str1="Ошибка запуска: "
link(onStrCat,9255404:doWork,[])
}
Add(Edit,12063275,504,287)
{
Left=40
Top=5
Text="5000"
}
Add(Button,5801244,231,469)
{
Left=225
Top=5
Width=120
Caption="Остановить прием"
Data=String(Прием выключен)
link(onClick,14849078:doEvent1,[])
}
Add(Button,6930660,182,84)
{
Left=5
Top=235
Width=145
Caption="Отправить выбранному"
link(onClick,15173414:doEvent1,[])
}
Add(Label,10355122,21,154)
{
Left=5
Top=10
Width=32
Height=17
Caption="Порт:"
}
Add(Label,6505258,21,203)
{
Left=5
Top=35
Width=120
Height=17
Caption="Активные соединения:"
}
Add(Memo,5066186,1358,175)
{
Left=5
Top=290
Width=315
Height=225
ScrollBars=3
}
Add(Label,16606011,21,252)
{
Left=5
Top=270
Width=174
Height=17
Caption="Полученные от клиентов данные:"
}
Add(Label,5144598,70,154)
{
Left=330
Top=35
Width=26
Height=17
Caption="Лог:"
}
Add(StringTableMT,6286,1197,686)
{
Left=5
Top=55
Width=315
Height=115
Columns=#11:ClientID=75|14:IP address=100|15:Data sended=100|
IconsCheck=[]
MiscIcons=[]
Icons=[]
Point(onSelect)
Point(Index)
Point(Matrix)
Point(doSelect)
}
Add(LineBreakEx,9255404,742,413)
{
@Color=11184895
Caption="log"
}
Add(LineBreakEx,10192232,742,364)
{
@Color=11184895
Caption="log"
}
Add(Hub,16229820,245,301)
{
link(onEvent1,6777519:doStopServer,[(375,307)(375,356)])
link(onEvent2,12147381:doWork,[])
}
Add(LineBreakEx,12147381,273,308)
{
@Color=11184895
Caption="log"
}
Add(Hub,14849078,280,469)
{
link(onEvent1,6777519:doStopListen,[(376,475)(376,398)])
link(onEvent2,13154032:doWork,[])
}
Add(LineBreakEx,13154032,308,476)
{
@Color=11184895
Caption="log"
}
Add(Button,10485459,14,455)
{
Left=195
Top=175
Width=125
Caption="Отключить всех"
Data=String(Все отключены)
link(onClick,5916237:doEvent1,[])
}
Add(Button,4042353,21,399)
{
Left=5
Top=175
Width=145
Caption="Отключить выбранного"
Data=String( отлючен)
link(onClick,10955472:doEvent1,[])
}
Add(Hub,5916237,63,455)
{
OutCount=4
link(onEvent1,6777519:doCloseAll,[(247,461)(247,370)])
link(onEvent2,8484241:doWork,[])
link(onEvent3,12263019:doWork,[])
link(onEvent4,15066315:doWork,[(84,482)(84,496)])
}
Add(LineBreakEx,12263019,140,469)
{
@Color=11184895
Caption="log"
}
Add(LineBreakEx,16146697,1127,686)
{
Caption="add"
Type=1
link(OnEvent,6286:doAdd,[])
}
Add(LineBreakEx,16645085,903,203)
{
Caption="ID"
Type=2
}
Add(LineBreakEx,2569545,1155,777)
{
Caption="del"
Type=1
link(OnEvent,7563513:doData,[])
}
Add(LineBreakEx,9725110,105,413)
{
Caption="del"
}
Add(LineBreakEx,14480253,1071,693)
{
Caption="clear"
Type=1
link(OnEvent,6286:doClear,[])
}
Add(LineBreakEx,8484241,91,462)
{
Caption="clear"
}
Add(DoData,7563513,1211,777)
{
link(onEventData,6286:doDelete,[(1255,783)(1255,765)(1175,765)(1175,706)])
link(Data,6286:Index,[])
}
Add(LineBreakEx,12129247,497,448)
{
Caption="ID"
Type=3
link(_Data,6777519:CurClientID,[])
}
Add(LineBreakEx,6071777,910,224)
{
Caption="IP"
Type=2
}
Add(LineBreakEx,1028735,504,427)
{
Caption="IP"
Type=3
link(_Data,6777519:CurIPAddress,[])
}
Add(LineBreakEx,13188730,497,259)
{
Caption="cur"
Type=2
}
Add(LineBreakEx,5376722,1148,882)
{
Caption="cur"
Type=3
link(_Data,6429138:GetData,[])
}
Add(Hub,10955472,70,399)
{
OutCount=4
link(onEvent1,6777519:doClose,[(121,405)(121,363)])
link(onEvent2,15222582:doStrCat,[])
link(onEvent3,9725110:doWork,[])
link(onEvent4,13351095:doWork,[(91,426)(91,440)])
}
Add(LineBreakEx,6915611,203,406)
{
@Color=11184895
Caption="log"
}
Add(StrCat,15222582,154,406)
{
link(onStrCat,6915611:doWork,[])
link(Str1,3504114:getVar,[])
}
Add(LineBreakEx,3504114,154,378)
{
Caption="cur"
Type=2
}
Add(StrCatDelim,5912099,903,252)
{
Delimiter=";"
link(onStrCatDlm,16444172:doWork,[])
link(Str2,6071777:getVar,[])
}
Add(LineBreakEx,16444172,959,252)
{
Caption="add"
}
Add(LineBreakEx,7252945,875,357)
{
Caption="del"
}
Add(MultiElement,14309163,1022,721)
{
@Hint=#42:Вычисление номера строки по идентификатору|
link(onEvent1,6286:doSelect,[(1126,727)(1126,713)])
link(Data1,7309411:getVar,[])
}
BEGIN_SDK
Add(EditMulti,6760725,21,21)
{
EventCount=1
WorkCount=1
DataCount=1
Width=447
Height=333
VOffset=105
HOffset=75
link(doWork1,16448232:doValue,[])
}
Add(MatrixRW,14714267,252,126)
{
Point(CountRow)
link(onRead,13274947:doCompare,[])
link(Matrix,6760725:Data1,[(258,106)(102,106)])
link(X,2369273:Value,[])
link(Y,8877663:getVar,[])
}
Add(For,8686460,245,238)
{
IncludeEnd=1
link(onEvent,14714267:doRead,[(293,244)(293,189)(242,189)(242,132)])
link(Start,11942156:Value,[(251,222)(195,222)])
link(End,14714267:CountRow,[])
}
Add(Memory,16448232,84,126)
{
link(onData,8686460:doFor,[(147,132)(147,244)])
}
Add(LineBreakEx,5181742,84,175)
{
Caption="ID"
Type=3
link(_Data,16448232:Value,[])
}
Add(LineBreakEx,13161377,343,91)
{
Caption="ID"
Type=2
}
Add(If_else,13274947,336,126)
{
link(onTrue,14329397:doData,[])
link(Op2,13161377:getVar,[])
}
Add(LineBreakEx,8877663,273,91)
{
Caption="idx"
Type=2
}
Add(LineBreakEx,13302447,245,287)
{
Caption="idx"
Type=3
link(_Data,8686460:Position,[])
}
Add(LineBreakEx,8430613,392,84)
{
Caption="idx"
Type=2
}
Add(DoData,14329397,392,126)
{
link(onEventData,6760725:onEvent1,[])
link(Data,8430613:getVar,[])
}
Add(Memory,11942156,189,175)
{
Default=Integer(0)
}
Add(Memory,2369273,266,35)
{
Default=Integer(0)
}
END_SDK
Add(LineBreakEx,9665819,1218,742)
{
Caption="m"
Type=3
link(_Data,6286:Matrix,[])
}
Add(LineBreakEx,7309411,1022,693)
{
Caption="m"
Type=2
}
Add(LineBreakEx,12673722,742,497)
{
@Color=11184895
Caption="log"
}
Add(Hub,3028539,1127,175)
{
OutCount=3
link(onEvent1,4790786:doCompare,[(1153,181)(1153,149)(1087,149)(1087,118)])
link(onEvent2,14373174:doEvent2,[])
link(onEvent3,3874551:doLength,[(1159,195)(1159,265)])
}
Add(LineBreakEx,3273383,1246,77)
{
Caption="ID"
Type=2
}
Add(LineBreakEx,11810615,1253,98)
{
Caption="IP"
Type=2
}
Add(FormatStr,7246594,1246,133)
{
Mask="Получены данные от %1 (%2):"
link(onFString,14373174:doEvent1,[(1292,139)(1292,181)])
link(Str1,3273383:getVar,[])
link(Str2,11810615:getVar,[])
}
Add(Hub,14373174,1302,175)
{
InCount=2
OutCount=1
link(onEvent1,5066186:doAdd,[])
}
Add(Hub,1787300,833,350)
{
OutCount=4
link(onEvent1,4905534:doWork,[])
link(onEvent2,7252945:doWork,[])
link(onEvent3,12830445:doWork,[])
link(onEvent4,528689:doStrCat,[(871,377)(871,391)])
}
Add(StrCat,528689,896,385)
{
Str2=" отключился"
link(onStrCat,15787881:doWork,[])
}
Add(LineBreakEx,15787881,952,385)
{
@Color=11184895
Caption="log"
}
Add(LineBreakEx,9017334,336,84)
{
@Color=11184895
Caption="log"
}
Add(Hub,15173414,238,84)
{
link(onEvent1,15392374:doString,[])
link(onEvent2,472054:doData,[(277,97)(277,139)])
}
Add(LineBreakEx,6088956,287,56)
{
Caption="cur"
Type=2
}
Add(Edit,7068077,385,56)
{
Left=5
Top=210
Width=315
Text="Добро пожаловать на сервер!"
}
Add(Button,1924817,1176,203)
{
Left=235
Top=265
Width=85
Caption="Очистить"
Data=Integer(0)
link(onClick,14234221:doEvent1,[])
}
Add(FormatStr,6826164,693,497)
{
Mask="%1: ошибка отправки %2"
link(onFString,12673722:doWork,[])
link(Str1,10904006:getVar,[])
}
Add(LineBreakEx,10904006,693,469)
{
Caption="ID"
Type=2
}
Add(Hub,15003814,266,168)
{
link(onEvent1,15401622:doWork,[])
link(onEvent2,15583290:doData,[(298,181)(298,195)])
}
Add(LineBreakEx,15401622,308,168)
{
@Color=11184895
Caption="log"
}
Add(FormatStr,15392374,287,84)
{
DataCount=1
Mask="Отправка клиенту %1..."
link(onFString,9017334:doWork,[])
link(Str1,6088956:getVar,[])
}
Add(LineBreakEx,14621722,959,476)
{
@Color=11184895
Caption="log"
}
Add(FormatStr,6421089,910,476)
{
DataCount=1
Mask="Клиенту %1 отправлено"
link(onFString,14621722:doWork,[])
link(Str1,2340659:getVar,[])
}
Add(LineBreakEx,2340659,910,441)
{
Caption="ID"
Type=2
}
Add(Label,3314082,1456,259)
{
Left=180
Top=270
Width=36
Height=17
Font=[MS Sans Serif,8,1,0,1]
Caption="0 KB"
}
Add(Length,3874551,1183,259)
{
link(onLength,5784918:doOperation,[])
}
Add(Math,5784918,1232,259)
{
link(onResult,4269682:doValue,[])
link(Op2,4269682:Value,[(1245,247)(1274,247)(1274,310)(1308,310)])
}
Add(Math,11454386,1358,259)
{
OpType=3
Op2=1024
ResultType=0
link(onResult,11964578:doStrCat,[])
}
Add(LineBreakEx,14169823,378,294)
{
@Color=16777130
Caption="send1"
Type=1
link(OnEvent,6777519:doSend,[(468,300)(468,342)])
}
Add(LineBreakEx,1002743,259,406)
{
Caption="send1as"
Type=1
link(OnEvent,6777519:doSendAsync,[(353,412)(353,384)])
}
Add(LineBreakEx,16548681,266,378)
{
Caption="sendAll"
Type=1
link(OnEvent,6777519:doSendAll,[(345,384)(345,377)])
}
Add(LineBreakEx,11644346,252,434)
{
Caption="sendAllas"
Type=1
link(OnEvent,6777519:doSendAllAsync,[(363,440)(363,391)])
}
Add(Label,9432894,21,301)
{
Left=5
Top=520
Width=90
Height=17
Caption="Отправить файл:"
}
Add(LineBreakEx,4689093,434,133)
{
@Color=16777130
Caption="send1"
}
Add(LineBreakEx,11480938,406,189)
{
Caption="sendAll"
}
Add(DoData,472054,385,133)
{
Data=String()
link(onEventData,4689093:doWork,[])
link(Data,9981014:Var2,[])
}
Add(DoData,15583290,350,189)
{
Data=String()
link(onEventData,11480938:doWork,[])
link(Data,9981014:Var1,[(356,110)])
}
Add(GetDataEx,9981014,385,105)
{
link(Data,7068077:Text,[])
}
Add(Hub,14234221,1232,203)
{
link(onEvent1,5066186:doClear,[(1340,209)(1340,188)])
link(onEvent2,4269682:doClear,[(1287,216)(1287,272)])
}
Add(LineBreakEx,1211794,595,322)
{
Caption="on_rec"
}
Add(LineBreakEx,9516814,1050,175)
{
Caption="on_rec"
Type=1
link(OnEvent,3028539:doEvent1,[])
}
Add(InfoTip,3984338,532,21)
{
Info=#3:Log|
Width=267
Height=151
}
Add(InfoTip,15513282,168,21)
{
Info=#15:Отправка строки|
Width=330
Height=221
}
Add(InfoTip,15491084,49,616)
{
Info=#15:Отправка файлов|
Width=708
Height=277
}
Add(InfoTip,9371652,938,637)
{
Info=#31:Отображение текущих подключений|
Width=372
Height=291
}
Add(InfoTip,1689452,1029,49)
{
Info=#12:Прием данных|
Width=477
Height=305
}
Add(Memory,4269682,1302,259)
{
Default=Integer(0)
link(onData,11454386:doOperation,[])
}
Add(Hub,9688387,784,252)
{
OutCount=4
link(onEvent1,5912099:doStrCatDlm,[])
link(onEvent2,4238410:doWork,[])
link(onEvent3,2048652:doWork,[])
link(onEvent4,2919777:doStrCat,[(812,279)(812,300)])
}
Add(LineBreakEx,4905534,917,350)
{
Caption="sel"
}
Add(LineBreakEx,11172694,966,721)
{
Caption="sel"
Type=1
link(OnEvent,14309163:doWork1,[])
}
Add(EventFromData,6429138,1148,833)
{
link(onEvent,12427094:doSplit,[])
}
Add(MultiStrData,12427094,1204,833)
{
link(Str,6286:Select,[])
link(onPart1,6429138:doData,[(1246,839)(1246,906)(1136,906)(1136,839)])
}
Add(LineBreakEx,4238410,819,259)
{
Caption="sel"
}
Add(StrCat,2919777,826,294)
{
Str1="Добро пожаловать! Ваш ID "
link(onStrCat,10312207:doWork,[])
}
Add(LineBreakEx,10312207,875,294)
{
Caption="send1as"
}
Add(StrCat,11964578,1407,259)
{
Str2=" KB"
link(onStrCat,3314082:doText,[])
}
Add(Button,6661910,280,504)
{
Left=335
Top=570
Width=105
Caption="Отменить"
link(onClick,6777519:doAbortSendAll,[(402,510)(402,405)])
}
Add(LineBreakEx,12115097,987,868)
{
Caption="progr"
Type=1
link(OnEvent,14936990:doWork1,[])
}
Add(InfoTip,7205773,959,784)
{
Info=#21:Отображение прогресса|
Width=155
Height=130
}
Add(LineBreakEx,1938713,539,385)
{
Caption="progr"
}
Add(MultiElement,14936990,1050,868)
{
@Hint=#42:Вычисление номера строки по идентификатору|
link(Data1,3319368:getVar,[])
link(Data2,10508349:getVar,[])
}
BEGIN_SDK
Add(EditMulti,14709909,21,21)
{
WorkCount=1
DataCount=2
Width=531
Height=333
VOffset=105
HOffset=77
link(doWork1,11926474:doValue,[])
}
Add(MatrixRW,11106796,252,126)
{
Point(CountRow)
link(onRead,2950031:doCompare,[])
link(Matrix,4737361:getVar,[])
link(X,11529468:Value,[])
link(Y,12245715:getVar,[])
}
Add(For,1538339,245,238)
{
IncludeEnd=1
link(onEvent,11106796:doRead,[(293,244)(293,189)(242,189)(242,132)])
link(Start,16133510:Value,[(251,222)(195,222)])
link(End,11106796:CountRow,[])
}
Add(Memory,11926474,84,126)
{
link(onData,1538339:doFor,[(147,132)(147,244)])
}
Add(LineBreakEx,2980338,98,70)
{
Caption="ID"
Type=3
link(_Data,14709909:Data1,[])
}
Add(LineBreakEx,11744555,329,91)
{
Caption="ID"
Type=2
}
Add(If_else,2950031,322,126)
{
link(onTrue,3504863:doWrite,[])
link(Op2,11744555:getVar,[])
}
Add(LineBreakEx,12245715,273,92)
{
Caption="row"
Type=2
}
Add(LineBreakEx,15166411,245,288)
{
Caption="row"
Type=3
link(_Data,1538339:Position,[])
}
Add(Memory,16133510,189,175)
{
Default=Integer(0)
}
Add(Memory,11529468,266,35)
{
Default=Integer(0)
}
Add(LineBreakEx,4737361,252,77)
{
Caption="m"
Type=2
}
Add(LineBreakEx,5527713,105,42)
{
Caption="m"
Type=3
link(_Data,14709909:Data2,[])
}
Add(LineBreakEx,6460904,84,175)
{
Caption="progr"
Type=3
link(_Data,11926474:Value,[])
}
Add(LineBreakEx,8408014,427,56)
{
Caption="progr"
Type=2
}
Add(MatrixRW,3504863,420,119)
{
X=2
Point(CountRow)
link(Matrix,13385898:getVar,[])
link(Value,8408014:getVar,[])
link(Y,5430807:getVar,[])
}
Add(LineBreakEx,5430807,441,85)
{
Caption="row"
Type=2
}
Add(LineBreakEx,13385898,420,35)
{
Caption="m"
Type=2
}
END_SDK
Add(LineBreakEx,10508349,1057,840)
{
Caption="m"
Type=2
}
Add(LineBreakEx,3319368,1050,819)
{
Caption="ID"
Type=2
}
Add(Label,13305213,490,525)
{
Left=130
Top=35
Width=11
Height=17
Font=[MS Sans Serif,8,1,0,1]
Caption="0"
link(Text,6777519:Count,[])
}
Add(LineBreakEx,14063813,427,525)
{
@Color=16755455
Caption="count"
Type=1
link(OnEvent,13305213:doText,[])
}
Add(LineBreakEx,12830445,931,364)
{
@Color=16755455
Caption="count"
}
Add(LineBreakEx,2048652,847,266)
{
@Color=16755455
Caption="count"
}
Add(LineBreakEx,15066315,105,490)
{
@Color=16755455
Caption="count"
}
Add(LineBreakEx,13351095,98,434)
{
@Color=16755455
Caption="count"
}
Add(ListBox,8291218,686,42)
{
Left=330
Top=55
Width=185
Height=460
}
Add(LineBreakEx,15843749,539,35)
{
@Color=11184895
Caption="log"
Type=1
link(OnEvent,1315586:doEvent1,[])
}
Add(Button,1175463,623,49)
{
Left=430
Top=30
Width=85
Caption="Очистить"
link(onClick,8291218:doClear,[])
}
Add(If_else,10863870,693,112)
{
Op2=Integer(50)
link(onTrue,7381714:doData,[])
link(Op1,8291218:Count,[])
AddHint(-45,14,27,13,Op2)
}
Add(DoData,7381714,742,112)
{
Data=Integer(0)
link(onEventData,8291218:doDelete,[(786,118)(786,98)(670,98)(670,62)])
}
Add(Hub,1315586,588,35)
{
link(onEvent1,10863870:doCompare,[(615,41)(615,118)])
link(onEvent2,8291218:doAdd,[])
}
Add(Button,9344884,56,700)
{
Left=-5
Top=535
Caption="Выбрать"
link(onClick,774689:doExecute,[])
}
Add(LED,10530662,1155,112)
{
Left=295
Top=570
}
Add(If_else,4790786,1099,112)
{
Op2=Integer(1)
link(onTrue,10530662:doChangeValue,[])
}
Add(Edit,7298692,349,756)
{
Left=10
Top=560
Width=145
Text="Пример текста"
link(onEnter,10742204:doEvent1,[])
}
Add(StreamPack,14434465,552,749)
{
DataCount=#10:тип данных|6:данные|0:|
link(onPack,10718303:doWork,[])
link(данные,12524206:Data,[(565,736)(540,736)(540,792)(502,792)])
}
Add(ChanelToIndex,12524206,496,749)
{
Count=3
Point(Data)
link(onIndex,14434465:doPack,[])
}
Add(FileStream,2227522,349,707)
{
link(onLoad,15407374:doData,[])
link(FileName,10384604:Text,[(355,695)(285,695)(285,744)(216,744)])
}
Add(ODialog,774689,111,700)
{
Title="файл для отправки данных"
link(onExecute,10384604:doText,[])
}
Add(DoData,15407374,405,707)
{
link(onEventData,12524206:doWork2,[(453,713)(453,762)])
link(Data,2227522:Stream,[(411,695)(392,695)(392,750)(355,750)])
}
Add(Label,7520253,489,665)
{
Left=500
Top=535
Width=137
Height=17
Caption="---------------------"
}
Add(Hub,10529649,258,700)
{
OutCount=3
link(onEvent1,10690890:doPart,[(324,706)(324,671)])
link(onEvent2,2227522:doOpen,[])
link(onEvent3,2227522:doClose,[])
}
Add(Hub,661063,412,665)
{
link(onEvent1,7520253:doText,[])
link(onEvent2,12524206:doWork1,[(462,678)(462,755)])
}
Add(FilePartElm,10690890,349,665)
{
link(onPart,661063:doEvent1,[])
}
Add(DoData,15097737,349,805)
{
link(onEventData,10742204:doEvent2,[(400,811)(400,776)])
link(Data,7298692:Text,[])
}
Add(Hub,10742204,419,763)
{
InCount=2
OutCount=1
link(onEvent1,12524206:doWork3,[])
}
Add(Edit,10384604,210,700)
{
Left=60
Top=535
Width=435
Text="C:\Users\Администратор\Desktop\Screenshot_12.png"
link(onChange,10529649:doEvent1,[])
}
Add(LineBreakEx,10718303,658,749)
{
Caption="sendAllas"
}

В чем ошибка? Посмотрите пожалуйста.

Редактировалось 6 раз(а), последний 2020-12-28 17:53:23
карма: 0

0
Ответов: 793
Рейтинг: 168
#2: 2020-12-28 18:12:46 ЛС | профиль | цитата
LeoN, Netspirit тебе правильный путь указал, использовать HTTP сервер. Пример есть в Hiasm (\Elements\delphi\Example\Internet\http_server.sha)

Add(MainForm,3006772,105,112)
{
Left=20
Top=105
link(onCreate,4557003:##open,[])
}
Add(TCP_ServerEx,4557003,161,126)
{
}
BEGIN_SDK
Add(EditMultiEx,9971778,3,3)
{
WorkCount=#6:##open|
Width=650
Height=333
}
Add(TCP_Connection,916654,42,56)
{
link(onRead,6091776:doSearch,[])
}
Add(FormatStr,14028257,557,231)
{
Mask="%2Content-Length: %1\n\r\n\r"
link(onFString,5832223:doWork2,[])
link(Str1,6544603:Size,[(563,216)(524,216)])
link(Str2,2893471:Text,[])
}
Add(Convertor,8776093,511,273)
{
Mode=11
link(onResult,5832223:doWork3,[(613,279)])
link(Data,6544603:Stream,[])
}
Add(StrList,2893471,564,162)
{
Strings=#15:HTTP/1.1 200 OK|32:Server: mywebserver/1.0.0(Win32)|
}
Add(BlockFind,6091776,91,56)
{
IncludeBlock=1
StartBlock="GET "
EndBlock=" HTTP"
link(onSearch,12312877:doReplace,[])
}
Add(Hub,2110309,427,168)
{
OutCount=4
link(onEvent1,6544603:doOpen,[])
link(onEvent2,14028257:doString,[(492,181)(492,237)])
link(onEvent3,8776093:doConvert,[(485,188)(485,279)])
link(onEvent4,6544603:doClose,[(500,195)(500,181)])
}
Add(HubEx,2954087,609,112)
{
Angle=3
link(onEvent,916654:doSend,[(613,37)(30,37)(30,69)])
}
Add(Replace,12312877,154,56)
{
SubStr="/"
DestStr="\\"
link(onReplace,8984929:doStrCat,[])
}
Add(StrCat,8984929,203,56)
{
Str1="www"
link(onStrCat,14307555:doValue,[])
}
Add(Memory,14307555,252,56)
{
link(onData,2500498:doFileExists,[(296,62)(296,83)])
}
Add(FileStream,6544603,511,168)
{
link(FileName,14307555:Value,[(517,152)(258,152)])
}
Add(HubEx,5832223,609,231)
{
Angle=3
link(onEvent,2954087:doWork3,[])
}
Add(FileTools,2500498,308,56)
{
link(onEnd,12755746:doEvent,[])
}
Add(IndexToChanel,12755746,357,56)
{
link(onEvent1,10876968:doData,[(450,62)(450,118)])
link(onEvent2,2110309:doEvent1,[(408,69)(408,174)])
}
Add(StrList,8702102,511,49)
{
Strings=#22:HTTP/1.1 404 Not found|32:Server: mywebserver/1.0.0(Win32)|18:Content-Length: 48|0:|46:<html><body><h1>Not found !</h1></body></html>|
}
Add(DoData,10876968,511,112)
{
link(onEventData,2954087:doWork2,[])
link(Data,8702102:Text,[])
}
END_SDK
Add(InfoTip,2900301,196,49)
{
Info=#53:Для проверки работы сервера введите в браузере адрес:|
Width=274
}
Add(LinkTip,16509513,252,91)
{
Link="http://127.0.0.1/index.html"
Font=[MS Sans Serif,8,0,16711680,1]
}

карма: 16

0
Ответов: 4630
Рейтинг: 749
#3: 2020-12-28 18:13:02 ЛС | профиль | цитата
А учитывается что большие данные приходят несколькими порциями и что новые данные могут приходить одной порцией с концом предыдущих? Нужно накопление и разделение на принимающей стороне. В теме по альтернативных TCP компонентах есть посты на эту тему.
Как отправить целиком файл - есть ссылки на примеры в первом посте темы.
Задача достаточно сложная как для понимания, так и для реализации имеющимися компонентами.
карма: 26

0
Ответов: 59
Рейтинг: 0
#4: 2020-12-28 18:22:25 ЛС | профиль | цитата
Gunta писал(а):
использовать HTTP сервер

В нем нет отправки выбранному пользователю. Можно отправить по ип, но это если вручную.
карма: 0

0
Ответов: 793
Рейтинг: 168
#5: 2020-12-28 18:24:56 ЛС | профиль | цитата
LeoN писал(а):
скачивания файла с сервера на конкретный клиент.

Так надо отправить или скачивать?

Редактировалось 2 раз(а), последний 2020-12-28 18:26:42
карма: 16

0
Ответов: 4630
Рейтинг: 749
#6: 2020-12-28 18:32:50 ЛС | профиль | цитата
Клиент запрашивает, сервер отдаёт.
карма: 26

0
Ответов: 59
Рейтинг: 0
#7: 2020-12-28 21:22:42 ЛС | профиль | цитата
Gunta, Нужно скачать с сервера на клиент, но клиент может быть запущен не один одновременно,а передача файла то будет на все клиенты сразу
карма: 0

0
Ответов: 793
Рейтинг: 168
#8: 2020-12-29 00:14:56 ЛС | профиль | цитата
LeoN писал(а):
Нужно скачать с сервера на клиент, но клиент может быть запущен не один одновременно,а передача файла то будет на все клиенты сразу

Попробуй.
https://forum.hiasm.com/getfile/39189
карма: 16

0
файлы: 1HTTP сервер.zip [52.1KB] [395]
Ответов: 1343
Рейтинг: 31
#9: 2020-12-29 00:24:20 ЛС | профиль | цитата
Мноооого времени колдовал с серверной стороной http файлового сервера, в итоге нашел очень очень маленькую и функциональную программу, а главное стабильную... HFS

Клиентскую часть использую именно обычный http клиент, все работает как часики
карма: 2

0
Ответов: 59
Рейтинг: 0
#10: 2021-01-23 19:22:41 ЛС | профиль | цитата
Gunta, Спасибо. Это отличный рабочий вариант. А можно реализовать скачивание нескольких файлов? Или для каждого файла нужно добавлять отдельный элемент или лучше все запихнуть в архив?
карма: 0

0
Ответов: 793
Рейтинг: 168
#11: 2021-01-23 22:20:17 ЛС | профиль | цитата
LeoN писал(а):
А можно реализовать скачивание нескольких файлов?

Да, вот один из вариантов.
https://forum.hiasm.com/getfile/39206
карма: 16

0
файлы: 1HTTP сервер 2.zip [63.5KB] [415]
Ответов: 59
Рейтинг: 0
#12: 2021-01-24 11:21:43 ЛС | профиль | цитата
Gunta, Спасибо! Буду разбираться. У элемента HTTP_GET есть точка onURLsize, возможность сделать чтобы размер показывало не в байтах а в мегабайтах? В элементах не нашел конвертера, а скаченные не хотят компилироваться.
карма: 0

0
Ответов: 793
Рейтинг: 168
#13: 2021-01-25 07:20:43 ЛС | профиль | цитата
LeoN писал(а):
размер показывало не в байтах а в мегабайтах

Add(MathParse,4545758,455,175)
{
DataCount=1
MathStr="round(%1/1048576,0.1) "
}


Редактировалось 1 раз(а), последний 2021-01-25 07:21:45
карма: 16

0
Ответов: 59
Рейтинг: 0
#14: 2021-01-26 16:52:02 ЛС | профиль | цитата
Gunta, А получить размер всех файлов возможно? Надеюсь не сильно надоел вам)
карма: 0

0
Ответов: 793
Рейтинг: 168
#15: 2021-01-28 08:20:09 ЛС | профиль | цитата
LeoN писал(а):
А получить размер всех файлов возможно?

Просто сложи размеры файлов
Add(Label,5398,36,28)
{
Width=459
Height=23
Align=2
Font=[Arial,8,0,0,1]
Caption=" IP сервера + порт"
AutoSize=1
}
Add(MainForm,91136,770,168)
{
Left=312
Top=284
Width=475
Height=268
Caption="Клиент"
}
Add(Button,53054,91,140)
{
Width=459
Align=4
Font=[Arial,8,0,0,1]
Caption="Download"
Data=Integer(0)
Point(doEnabled)
link(onClick,9672155:doEvent2,[(130,146)(130,125)])
}
Add(HTTP_Get,27891,483,105)
{
link(onDownload,13893167:doDeferredEvent,[])
link(onURLSize,8194132:doOperation,[(536,125)(536,174)])
link(URL,9951298:Result,[(489,96)(398,96)(398,145)(356,145)])
link(FileName,16283096:String,[(496,89)(342,89)(342,138)(244,138)])
}
Add(ListBox,16283096,210,84)
{
Top=23
Width=459
Height=186
Align=5
Strings=#10:cables.zip|16:MST_Virtual3.sha|16:MST_Virtual1.sha|16:MST_Virtual2.sha|
DataType=1
Point(doSelect)
Point(onSelect)
Point(EndIdx)
Point(String)
link(onSelect,12066548:doCompare,[])
}
Add(Edit,70643,350,42)
{
Left=150
Width=300
Height=21
Font=[Arial,8,0,0,1]
Text="http://127.0.0.1:8080/"
}
Add(StrCat,9951298,350,105)
{
link(onStrCat,12279259:doEvent1,[(389,111)(389,125)])
link(Str1,70643:Text,[])
}
Add(DeferredEvent,13893167,553,112)
{
Delay=30
Data=Integer(0)
link(onDeferredEvent,15369124:In,[])
}
Add(Hub,9672155,175,112)
{
InCount=2
OutCount=1
link(onEvent1,16283096:doSelect,[])
}
Add(Hub,9102927,119,98)
{
link(onEvent1,16283096:doDelete,[])
link(onEvent2,9672155:doEvent1,[(165,111)(165,118)])
}
Add(If_else,12066548,280,98)
{
Op2=String()
link(onFalse,9951298:doStrCat,[])
link(Op2,8550095:Value,[])
}
Add(LineBreak,3315553,63,98)
{
link(Out,9102927:doEvent1,[])
Primary=[15369124,546,14]
}
Add(Memory,8550095,287,42)
{
Default=String()
}
Add(Hub,12279259,406,119)
{
link(onEvent1,27891:GetURLSize,[])
link(onEvent2,27891:doDownload,[(431,132)(431,111)])
}
Add(Math,8194132,546,168)
{
link(onResult,10860111:doOperation,[])
link(Op2,8194132:Result,[(559,159)(566,159)(566,208)(552,208)])
}
Add(FormatStr,6320488,714,168)
{
Mask="Получено - %1 кб."
link(onFString,91136:doCaption,[])
}
Add(Math,10860111,602,168)
{
OpType=3
Op2=1024
link(onResult,15021157:doOperation,[])
}
Add(Math,15021157,665,168)
{
OpType=35
Op2=0.001
link(onResult,6320488:doString,[])
}


Редактировалось 1 раз(а), последний 2021-01-28 08:23:50
карма: 16

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