Помогите с Socket !!!!
»»» Pavel - pavel@tts.tomsk.su (23.10.00 05:11) Как передать файл с машины на машину через Socket соединение? Как всегда нужны примеры ;-)
»»» oksana - oksana@wtgres.pssr.ru (23.10.00 07:24) Для данной цели можно воспользоваться компонентами TNMStrmServ и TNMStrm, которые предназначены для обмена потоками данных.
Обработчик для клиента:
var MyStream:TMemoryStream; begin MyStream:=TMemoryStream.Create; MyStream.LoadFromFile('c:\windows\рабочий стол\demo.txt'); 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('c:\windows\рабочий стол\demo2.txt');<
br>end;
С уважением, Оксана
»»» shi - shi@tts.tomsk.su (23.10.00 11:44) Простите за глупый вопрос, но где взять TNMStrmServ и TNMStrm.
»»» oksana - oksana@wtgres.pssr.ru (23.10.00 12:51) В пятой дельфе (Enterprise) есть данные компоненты. Они находятся на вкладке FastNet С уважением, Оксана
»»» pavel - pavel@tts.tomsk.su (23.10.00 13:58) А если использовать TpowerSock то тогда как передать файл?
»»» oksana - oksana@wtgres.pssr.ru (23.10.00 14:55) На сколько мне не изменяет память, там возникают праблы с размерами файлов. Хотя попробывать стоит. Ведь там так же существуют методы для работы с потоками (чтение, запись). С уважением, Оксана
»»» Pavel - pavel@tts.tomsk.su (24.10.00 19:23) А как организовать двусторонний обмен файлами
ведь если я правильно понял то при помощи TNMStrmServ и TNMStrm поток инициируется
со только стороны клиента. Одним словом передомной следу!
ющая зад
ача: Программа клиент должна связаться с сервером передать ей файл потом запросить и принять определенный файл.
»»» oksana - oksana@wtgres.pssr.ru (25.10.00 05:28) Тогда можно писать по аналогии с Chat, пример которого присутствует в Demos. Таким образом, приложение у тебя выступает и в роли сервера и в роли клиента (два в одном), в зависимости от действий.
С уважением, Оксана
»»» pavel - pavel@tts.tomsk.su (25.10.00 05:47) А каким компанентом лучше воспользоваться?
»»» oksana - oksana@wtgres.pssr.ru (25.10.00 05:58) Для этих целей я использовала, выше названные, TNMStrmServ TNMStrm. С уважением, Оксана
»»» pavel - pavel@tts.tomsk.su (25.10.00 07:09) TNMStrmServ и TNMStrm как я понял не позволяют делать двусторонний обмен или я не прав, и как от клиента к серверу
передать запрос типа "sendfile C:\text.txt"
»»» oksana - oksana@
wtgres.pssr.ru (25.10.00 07:42) Вы правы. Клиент (TNMStm)- предназначен для отправления данных серверу (в данном случае потоков). А сервер для получения. Но ничего не может помешать в приложении вывесить эти два компонента, каждый из которых будет выполнять свои функции, при этом следует изменять свойство Host, каждого из них. Для правильного функционирования.
С уважением, Оксана
»»» pavel - pavel@tts.tomsk.su (25.10.00 08:05) Нехотелось бы на клиентской части размещать TNMStrmServ в целя безопасности. Может еще какой вариант посоветуете.
»»» oksana - oksana@wtgres.pssr.ru (25.10.00 08:38) А какие проблемы с безопасностью??? Обработчиков навесить и все в порядке. Активизировать компоненты при необходимости. Тогда можно попробывать использовать TPowerSock. В нем в неопубликованном виде, присутствуют события TNMStrm а
также следующие методы procedure CaptureStream(MainStream: TStream; Size: longint);
чтение из сокета данных и помещение их в поток; procedur!
e Captur
eFile(FileName: String); //// помещение в файл; procedure SendFile(FileName: String); procedure SendStream(MainStream: TStream); В хелпе есть примеры по их использованию
С уважением, Оксана
»»» pavel - pavel@tts.tomsk.su (25.10.00 09:57) Всеже компанент TPowerSock больше подходит. Но тут возникает вопрос "Какое событие происходит на сервере при получении от клиента к примеру строки,а не потока"
»»» oksana - oksana@wtgres.pssr.ru (25.10.00 10:36) Данные передаются пакетами (порциями), поэтому не столь выжно, что это поток или строка. В момент приема очередной порции данных возникает событие: property OnPacketRecvd: TNotifyEvent;
С уважением, Оксана »»» Mike Goblin - mgoblin@mail.ru (25.10.00 10:42) А может быть проще FTP сервер поставить и не заниматься изобретением велосипеда, С
уважением, Mike Goblin
»»» pavel - pavel@tts.tomsk.su (25.10.00
12:27) А где взять компанент для FTP сервера?
»»» Mike Goblin - mgoblin@mail.ru (25.10.00 13:08) В Win NT а еще лучче в Linux есть уже готовые сервера FTP Настаиваешь права доступа пользователей и с помощью Internet Explorer или Netscape или еще какого браузера имеешь пересылку файлов туда-сюда без всякого геморроя и в пределах локалки, а если есть статический IP в Inete - хоть по всему шару. Если уж совсем невмоготу и хочется что-то сваять на Делфи на закладке FastNet берешь NMFTP и лепишь клиента, там все до безобразия просто.
»»» Shi - Shi@tts.tomsk.su (28.10.00 10:52) Как правильно описать событие OnPacketRecvd у компанента TPowerSock ведь его нет в разделе Events?
»»» oksana - oksana@wtgres.pssr.ru (30.10.00 12:02) Для формы :procedure Powersock1PacketRecvd(Sender: TObject); Далее:
procedure
TForm1.Powersock1PacketRecvd; begin
end;<
br>
С уважением, Оксана
-= Из конференции са!
йта MASTERS OF DELPHI (http://delphi.mastak.com) =-
Современные операционные системы. 2-е изд.
Это с нетерпением ожидаемое, переработанное и исправленное издание всемирного бестселлера включает в себя сведения о последних достижениях в области технологий операционных систем. Книга построена на примерах и содержит информацию, необходимую для понимания функционирования современных операционных систем. Благодаря практическому опыту, приобретенному при разработке нескольких операционных систем, и высокому уровню знания предмета Эндрю Таненбаум смог ясно и увлеченно рассказать о сложных вещах. В книге приводится множество важных подробностей, которых нет ни в одном другом издании.
Автор: Таненбаум Э. С.
Хокку дня
Тигра свирепого когти Смелым друзьям не страшны- Двум Рознблюмам и Кацу...
Афоризмы
В китайском языке 15 тысяч иероглифов. Не дай Бог попасть на их "Поле Чудес", бессмысленное и беспощадное
Фраза дня
Товарищ, пройдемте для выяснения наличности.
Дурацкие законы (информация предоставлена сайтом kurilka.com)
В Северной Дакоте (США) считается преступлением ложиться спать, не сняв ботинок.
В Китае закон разрешает поступать в университет только "умственно развитым людям".
И на закуску коротенький анекдот
- Девушка вы замужем? - Нет перебиваюсь случайными связями.