Как вы отправляете несколько файлов через TCP-соединение с Perl? - PullRequest
1 голос
/ 15 июля 2011

Я тестирую пробную версию, которая отправляет два файла по TCP-соединению на удаленный сервер, и все они используют Perl.Однако я столкнулся с проблемой отправки нескольких файлов.В настоящее время у меня есть клиент (размещенный в Windows, на котором запущен ActiveState Perl), который хочет отправить более 2 CSV-файлов на удаленный сервер (работающий в некоторой форме RedHat).По ходу процесса клиент будет построчно распечатывать содержимое файла CSV, а когда это будет сделано, он отправит сообщение на сервер.Затем сервер должен перехватить это сообщение и переключить файл для записи в другой файл CSV.

Однако сервер - это всего лишь один большой файл, в котором я хочу разделить полученное на два файла.Итак, мой реальный вопрос заключается в следующем: как проще всего использовать Perl для отправки более двух файлов по TCP-соединению?Я бы предпочел использовать встроенные модули, такие как IO :: Sockets, но если мне нужно загрузить внешний модуль для упрощения процесса, я тоже могу это сделать.

Спасибо за любые ответы на все вопросы!

[EDIT]: Кажется, что на меня повлияли окончания строк, а также то, что к последней строке файла не добавлено "\ n"Это.Замена концов строк Windows на Unix, казалось бы, добилась цели, наряду с некоторым другим форматированием с сообщением «Конец файла».Спасибо всем, кто ответил!

1 Ответ

2 голосов
/ 15 июля 2011

Отправить заголовок с длиной первого файла.Так как это текстовые файлы, а это Perl, возможно, лучше использовать количество строк в файле.С другой стороны, прочитайте это количество строк как первый файл, а затем все остальные как второй.Этот принцип может быть расширен для любого количества файлов.

Редактировать: Вы также захотите перевести окончания строк Windows на Linux.Простой s / \ r \ n / \ n /;должен сделать трюк.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...