Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Массив по сети [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()

Желаю успехов


Наверх

Титульная страница Поиск, карта сайта Написать письмо