Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2002.06.03;
Скачать: [xml.tar.bz2];

Вниз

Уважаемые Мастера! Пожалуйста помогите чайнику пожалуйста разобраться с соккетами.   Найти похожие ветки 

 
daos   (2002-03-22 06:36) [0]

Моей прграмме нужно записать данные в фаил, а потом преслать на другую машину, но надо так-же в начало этого пакета дописать информацию о размешении файла -каталоги-подкаталиги. В программе пользователь задает каталог1 в нем каталог2, в нем каталог3, и имя_файла, затем создаются эти каталоги и фаил, в него пишется инфа, и по завершению программы этот фаил должен быть передан на другую машину.
Для этого я использую компоненты с палитры Internet (Клиент и Сервер Сокет), создаю файловый поток, и отсылаю его, на сервере считываю в файловый поток.
Вопрос в том как в начало дабавить строчку указывающию путь к файлу(его я знаю):string, а на сервере считать сначала ее, создать по ней директорию1-диркторию2-директорию3-Имя_файла, и записать этот оставшуюся информацию из сокета в файл(имя_файла).
Файл текстовый.


 
daos   (2002-03-22 07:28) [1]

При том на одну серверную прогу должна обрасчаться 15-20 клиентов.


 
Polevi   (2002-03-22 10:26) [2]

пишешь в сокет размер строки, сама строку с путем, затем сам файл


 
daos   (2002-03-22 11:22) [3]


> Polevi ©

А можно пример, я с сетями второй раз в жизни работаю, а надо очень.


 
Song   (2002-03-22 13:00) [4]

http://delphi.mastak.ru/cgi-bin/faq.pl?look=1&id=991237103&n=20


 
daos   (2002-03-22 14:09) [5]


> Polevi © (22.03.02 10:26)
> пишешь в сокет размер строки, сама строку с путем, затем
> сам файл

Но мучает вопрос: не перепутаются ли данные если обратятся несколько клиентов на сервер одновременно, т.е. строка с путем будет одного клиента, а фаил-другово?


 
Song   (2002-03-22 15:58) [6]

Перепутаются. Поэтому нужно послать поток с файлом и ждать от получателя положительного ответа, потом посылать следующий файл и т.д.


 
daos   (2002-03-22 17:01) [7]


> послать поток с файлом и ждать от получателя положительного
> ответа, потом посылать следующий файл и т.д.

Не совсем вас понял.
Стоит вопрос: у меня есть серверное приложение(1шт) и 10 клиентских, на разных компьютерах. Если я посылаю текст+поток с одного компутера и текст+поток с другого одновременно-могут-ли они перепутаться и как этого избежать.
Кстати в королевтве дельфи только что прошол что для каждого клиента сервер выделяет отдельный сокет.


 
Song   (2002-03-22 17:41) [8]

Так и есть для каждого клиента отдельный сокет. А что, что не так должно быть?

Например:

для клиента TClientSocket

SendText(S); // Посылаем текст
SendStream(ms); // Посылаем поток
FlagReceive:=False;
While not FlagReceive Do Application.ProcessMessages; // Ждём пока та сторона его не примет
...
// Посылаем след. файл


для клиента TServerSocket

...
IF Pos("confirm_",ReceiveText)>0 then FlagReceive:=True;
...
// Посылаем след. файл




для сервера TClientSocket


IF Size=DataSize then // Поток получен полностью
Begin
...
// Посылаем сообщение confirm_

End;


Знаю, что возможно сразу будет непонятно, но адаптировал как мог.



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2002.06.03;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.007 c
6-7146
DriveT
2002-03-21 22:06
2002.06.03
Порт сканер помогите плз...


1-6953
SaperXL
2002-05-20 22:09
2002.06.03
RichEdit


7-7249
Серый
2002-03-03 19:09
2002.06.03
GM56E-V и Win XP


1-6988
Мефодий
2002-05-22 22:37
2002.06.03
Центрирование ячейки таблицы при создании отчета в Word


3-6910
icu
2002-05-10 18:47
2002.06.03
D-SQL





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский