/ / Come si inviano più file su una connessione TCP con Perl? - perl, socket, tcp

Come si inviano più file su una connessione TCP con Perl? - perl, prese, tcp

Sto testando una prova di concetto che manda duefile su una connessione TCP a un server remoto, tutti utilizzando Perl. Sto incontrando un problema, tuttavia, con l'invio di più file. Attualmente, ho il client (ospitato su Windows, che esegue ActiveState Perl) che vuole inviare oltre 2 file CSV al server remoto (eseguendo qualche forma di RedHat) Durante il processo, il client stamperà, riga per riga, i contenuti del file CSV e, quando ciò sarà fatto, invierà un messaggio al server, il quale dovrà quindi intercettare quel messaggio e cambia il file per scrivere su un altro file CSV.

Tuttavia, il server è solo un file di grandi dimensioni, doveVoglio dividere ciò che riceve in due file. Quindi, la mia vera domanda è questa: qual è il modo più semplice, usando Perl, di inviare oltre due file su una connessione TCP? Preferisco usare i moduli integrati, come IO :: Sockets, ma se devo scaricare un modulo esterno per semplificare il processo, posso farlo anche io.

Grazie per qualsiasi e tutte le risposte!

[MODIFICARE]: Sembra che i finali di linea stiano influenzandoio, insieme al fatto che l'ultima riga di un file non ha una "n" aggiunta, sostituendo le terminazioni di linea di Windows con quelle di Unix, e qualche altra formattazione con "End Of File" messaggio. Grazie a tutti quelli che hanno risposto!

risposte:

2 per risposta № 1

Invia un'intestazione con la lunghezza del primo file. Dal momento che sono file di testo, e questo è Perl, potrebbe essere meglio usare il numero di linee nel file. Dall'altra parte, leggi quel numero di righe come primo, poi tutto il resto come secondo Questo principio può essere esteso per qualsiasi numero di file.

Modifica: Dovrai anche tradurre le terminazioni delle linee di Windows in quelle di Linux. Un semplice s / rn / n /; dovrebbe fare il trucco.