|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Помогите передать файл по сокетам
Привет.
Пишу клиент-сервер на ServerSocket/ClientSocket, реализовал передачу файлов. Но появилась проблема: перед тем как отправить сам файл, отправляю (с сервера на клиент) инфу о файле (имя файла), потом сам файл. Код:
Server.Socket.Connections[0].SendText(FileName); ... Server.Socket.Connections[0].SendStream(MS); на клиенте принимаю инфу Код:
RecText := Socket.ReceiveText; ... //потом сам поток сначала приходит имя файла норм, а за ним сразу же непонятный набор символов "PK" и три квадратика, из-за чего не могу сохранить файл (т.к. имя получается из имени файла+набор символов). Сам поток доходит без проблем. В чем может быть причина появления данных символов? |
#2
|
||||
|
||||
Цитата:
С букв "PK" начинаются zip-архивы откуда следует, что ты пытаешься передать zip-архив |
#3
|
||||
|
||||
принимай файл через:
Код:
function ReceiveBuf(var Buf; Count: Integer): Integer; примеры на форуме были, поиском можно найти. Пишу программы за еду. __________________ |
#4
|
|||
|
|||
Цитата:
Верно, сам поток так и получаю. Имя файла я отправляю до того, как даже загрузить файл в поток. Быть может стоит после пересылки имени файла закрывать сокет, а потом перед пересылкой файла заново создавать? Последний раз редактировалось grorg, 19.09.2012 в 10:59. |
#5
|
||||
|
||||
вариантов как обычно много:
-можно передавать имя файла в виде записи фиксированого размера -а можно после имени добавлять отделитель имени от самого файла в виде #0 к примеру на стороне клиента: -принять фиксированый размер данных, либо до #0 - это будет имя -принять все остальное - это будет файл примеры на форуме были, поиском можно найти. Пишу программы за еду. __________________ |
#6
|
||||
|
||||
Цитата:
|
#7
|
||||
|
||||
Можно по двум портам передать, как ftp, по одному информация, по второму данные.
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#8
|
||||
|
||||
Цитата:
Пишу программы за еду. __________________ |