qualquer maneira de aumentar a velocidade da transferência de arquivos pela LAN


0

Eu tenho dois computadores antigos A e B, que estão executando o Windows XP e conectados à mesma LAN com a pasta compartilhada criada. Computador A compartilha uma pasta para todos os computadores na mesma LAN.

A cada 10 segundos, o computador B transfere um arquivo de 3 MB (sempre nomeado rpme.dat) pela LAN para a pasta de compartilhamento. Isso é feito por um aplicativo de terceiros. Eu não tenho nenhum controle sobre isso.

No computador A, desenvolvi um programa para pesquisar se o arquivo rpme.datexiste ou não. Nesse caso, o programa copiará o rpme.dat para outra pasta e o renomeará. No entanto, às vezes, quando detecta a existência do arquivo, isso não significa que a transferência do arquivo está concluída. Às vezes, meu programa copia o arquivo parcialmente salvo, em vez do arquivo inteiro. Eu não entendo o porquê. A LAN é bem rápida e o arquivo tem apenas 3 MB. Existe alguma maneira de aumentar a velocidade da transferência de arquivos ou qualquer maneira mais rápida de compartilhar o arquivo pela LAN?

PS Se o meu programa no computador aguarda 5 segundos antes de copiar o arquivo, ele funciona muito bem; Em 99% das vezes, copiarei o arquivo inteiro. Mas, por alguma razão, nem sempre posso esperar tanto tempo.


Portanto, seu raciocínio é que, ao transferir os arquivos mais rapidamente, você tem mais tempo para detectar e copiar o arquivo? infelizmente, geralmente a resposta para uma transferência mais rápida de arquivos pela rede é a E / S de disco mais rápida. no seu caso, como você trabalha com hardware antigo, provavelmente possui opções limitadas. como seu aplicativo de detecção e cópia percebe o novo arquivo? você está verificando um intervalo específico ou está usando algum tipo de objeto de estrutura?
Frank Thomas

Obrigado pela resposta. O terceiro aplicativo enviará um sinal (lógica "1" por meio de um cabo externo específico para notificar que um novo arquivo está sendo salvo), e meu código está aguardando o sinal "1" nessa porta do cabo. Esse processo é rápido. No entanto, ele só notifica quando o salvamento do arquivo é iniciado e não informa quando é concluído.
User1285419

1
convém usar um .net filesystemwatcher ou um componente java watchservice (não sei em que tempo de execução você está programando) para receber um sinal quando o arquivo terminar de ser gravado, em vez de precisar adivinhar quando será feito.
Frank Thomas
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.