![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Массив по сети [D7, WinME]
Gefest © (2003-12-22 20:35:00)
Уважаемые мастера!
Мне необходимо по сети передать массив типа Real от одного компа к другому. Подскажите пожалуйста как это сделать. Я так понял можно использовать TIdTCPClient и TIdTCPServer. Но послать массив не получается. Помогите примером пожалуйста!
S@shka (2003-12-23 11:26:00) [1]
На сколько я знаю они перестали осуществлять поодержку
Delphi после 6 версии. Или сделались очень платными....
"The Fastnet components are no longer bundled with Delphi. It appears Netmasters does have a version compatible with Delphi 7 which can be purchased at: http://www.netmastersllc.com/"
Размер массива какой?
Если "итого" до 1024 то проблем не возникнет, если чуток больше, то
просто это вытекает в то, что сервер (в режиме NonBlocking)
вызовет тебе несколько раз событие onRead, по принципу...
Пусть передается M-байт, тогда на приемнике (сервере)
M = Сумма по i (1,N) Ki, где
N - общее число событий onRead
Ki - число байт считанное в событие i.
Вот и все сложности.
Gefest (2003-12-23 10:39:00) [2]
Это все конечно здорого, но у меня нет вкладки FASTNET. Она вообще есть в Делфи 7?
S@shka (2003-12-23 09:49:00) [3]
Yaro->
В зависимости от того какой размер необходимо передать человеку
быть может как раз пример МАС и подойдет и будет приемлемым
Yaro (2003-12-23 04:16:00) [4]
MAC ->
Зачем все так сложно, если человеку всего-то массив отправить надо? По моему, наиболее рациональный ответ привел Rouse_
MAC (2003-12-23 01:53:00) [5]
Отправь файл.
Другой программой проверь (его на наличие), а потом считай куда нужно.
Компоненты на вкладке FastNet (NMStrm и NMStrmServ).
procedure TForm1.Button1Click(Sender: TObject);
var
MyStream: TMemoryStream;
begin
MyStream := TMemoryStream.Create; // Создание класса
NMStrm1.Port := 6711; // Значение порта получателя
NMStrm1.TimeOut := 3000; // Задержка при подключении (TimeOut)
NMStrm1.Host := "127.0.0.1"; // IP-Адресс получателя
NMStrm1.FromName := "Клиент"; // Имя отправителя
MyStream.LoadFromFile("C:\AutoExec.bat"); // Файл для отправки
NMStrm1.PostIt(MyStream); // Отправка данных
MyStream.Free; // Освобождение памяти
end;
****************************************
procedure TForm1.NMStrmServ1MSG(Sender: TComponent; const sFrom: String;
Strm: TStream);
var
MyStream: TMemoryStream;
begin
MyStream := TMemoryStream.Create;
MyStream.CopyFrom(Strm, NMStrmServ1.BytesTotal); // Извлекаем файл
MyStream.SaveToFile("D:\AutoExec.bat"); // Сохраняем полученный файл
end;
тем более что при получении ты можешь изменить ему имя -- используй как библиотеку.
Rouse_ (2003-12-22 21:03:00) [6]
SendBuf()
Желаю успехов