![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() здравствуйте.
незнаю как именно описать какой именно сервер хочу написать,попробую на примере существующего. есть такая програмка,её запускаешь, указываешь какие папки "расшарить" и файлы из этих папок можно будет скачать на другом компе введя в браузере ИП адрес компа с серовером.прога по этому адресу создает простенькую html страничку с файлами. выглядит примерно так ![]() проблема у мя заключается в том что при попытке чтото найти в гугле про сервер выдаётся создание сервера с базами даннных и тд... может хотя бы где прочитать кто поможет? Последний раз редактировалось Snake22, 12.03.2012 в 22:56. |
#2
|
||||
|
||||
![]() На вкладке internet компонент "httpserver". там все прозрачно должно быть для понимания.
|
#3
|
||||
|
||||
![]() Если нужно научиться:
ИМХО, для таких вещей специально сделали протокол FTP... И лучше бы прочитать про него. А там можно найти исходники простейшего FTP сервера и разобраться. Если нужно иметь программу: Ну это просто. Серверов разных сотни. jmp $ ; Happy End! The Cake Is A Lie. |
#4
|
|||
|
|||
![]() Цитата:
ща поизучаю httpserver как сказал MADMAN, спасибо |
#5
|
|||
|
|||
![]() Цитата:
ну... вообще да. ftp-сервера так и работают. |
#6
|
||||
|
||||
![]() Цитата:
Начинающий программист уверен, что в 1 килобайте 1000 байт.
Законченный программист уверен, что в 1 километре 1024 метра. |
#7
|
|||
|
|||
![]() Цитата:
советы по реализации даны, теперь дело за автором =) |
#8
|
||||
|
||||
![]() Во накакали в теме то, а все не по делу.
http для реализации веб морды, ссылочки там и прочая ерунда, ftp для передачи файла. По http заходим на нужный комп, видим нечто подобное картинке в 1 сообщении, жмем по ссылке, закачиваем по ftp. |
#9
|
|||
|
|||
![]() почти доделал скачивание файлов.надеюсь заливка тоже будет не трудной =) через idhttpserver делаю.
встал вопрос,не меняется порт во время работы программы.при этом в обжект инспекторе defaultport меняется. а программно ошибки никакой нет. но при смене сервер все равно реагирует только на изначальный порт.делал так Код:
IdHTTPServer1.Active:=false; IdHTTPServer1.DefaultPort:=81; IdHTTPServer1.Active:=true; IdHTTPServer1.Bindings.DefaultPort:=81; тож не помогло |
#10
|
||||
|
||||
![]() До запуска нитки надо порт устанавливать, да и http работает по 80 порту.
|
#11
|
|||
|
|||
![]() уже разобрался. циклом меняю для каждого соединения
for i:=0 to IdHTTPServer1.Bindings.Count-1 do IdHTTPServer1.Bindings.Items[i].Port:=PortN.Value; и еще на всякий IdHTTPServer1.Bindings.DefaultPort:=PortN.Value; Последний раз редактировалось Snake22, 12.03.2012 в 15:24. |
#12
|
|||
|
|||
![]() А как проверить занят ли выбранный порт или нет?
гугл не помогает((( в гугле нашел,если при смене порта вывалится ошибка значит занят. специально проверил,нифига нет. порт спокойно устанавливается.но если он занят то прога моя не перехватывает сообщения с порта. и при этом если порт знаят,и запустить мой серв,то состяние IdHTTPServer1.Active все равно равно true Последний раз редактировалось Snake22, 12.03.2012 в 15:29. |
#13
|
|||
|
|||
![]() нашел чтото но незнаю как прикрутить к проге?
что значит импорт? Импорт GetTcpTable: Код:
unit TcpTable; interface type PDWord = ^Longword; PMIB_TCPROW = ^TMIB_TCPROW; TMIB_TCPROW = record dwState: LongWord; dwLocalAddr: LongWord; dwLocalPort: LongWord; dwRemoteAddr: LongWord; dwRemotePort: LongWord; end; PMIB_TCPTABLE = ^TMIB_TCPTABLE; TMIB_TCPTABLE = record dwNumEntries: LongWord; table: array[0..0] of TMIB_TCPROW; end; function GetTcpTable(var TcpTable: PMIB_TCPTABLE; var Size: PDWord; bOrder: Boolean): LongWord; stdcall implementation function GetTcpTable; external 'Iphlpapi.dll' name 'GetTcpTable'; end. Вызов GetTcpTable: Код:
{$R-} Entries:=16; Sz:=SizeOf(TMIB_TCPTABLE)+SizeOf(TMIB_TCPROW)*(Entries-1); pMibTable:=nil; try repeat ReallocMem(pMibTable,Sz); Res:=GetTcpTable(pMibTable^,Sz,False); until Res <> ERROR_INSUFFICIENT_BUFFER; if Res <> NO_ERROR then begin ShowMessage(SysErrorMessage(Res)); exit; end; for Entries:=0 to pMibTable.dwNumEntries-1 do begin <Делать что-то> end; finally FreeMem(pMibTable); end; {$R+} |
#14
|
|||
|
|||
![]() и еще вопрос. посылаю файл на сервер.как его через idHTTPServer принять и сохранить? поиском опять же эта тема почемуто то вообще плохо даётся...
в страничке браузера форма аплоада выглядит так Код:
<FORM NAME="Upload" METHOD="POST" ACTION=test ENCTYPE="multipart/form-data"> <input type="file" name="OpDialog"/> <input type="submit" name="Send" value="Отправить"> </FORM></body></html> Код:
procedure TForm1.IdHTTPServer1CommandGet(...); var PostedFile:TMemoryStream; begin .... PostedFile:=TMemoryStream.Create; PostedFile.LoadFromStream(ARequestInfo.PostStream);//вот тут ошибка!! PostedFile.SaveToFile('c:\testfile'); Последний раз редактировалось Snake22, 12.03.2012 в 20:29. |
#15
|
|||
|
|||
![]() так,разобрался в ошибке,поток не считывается потому что PostStream=nil
почему?? чтото не так в форме отправки? ОТЗОВИТЕСЬ КТО НИТЬ!ААААААААААААААА ![]() |