วิธีการเพิ่มความเร็วของการถ่ายโอนไฟล์ผ่าน LAN


0

ฉันมีสอง เก่า คอมพิวเตอร์ A และ B ซึ่งใช้ Windows XP และเชื่อมต่อกับ LAN เดียวกันโดยสร้างโฟลเดอร์แชร์ คอมพิวเตอร์ A แบ่งใช้โฟลเดอร์กับคอมพิวเตอร์ทุกเครื่องใน LAN เดียวกัน

ประมาณทุกๆ 10 วินาทีคอมพิวเตอร์ B จะถ่ายโอนไฟล์ 3-MB (ตั้งชื่อเสมอ rpme.dat ) ผ่าน LAN ไปยังโฟลเดอร์แชร์ สิ่งนี้ทำโดยแอปพลิเคชันบุคคลที่สาม ฉันไม่สามารถควบคุมสิ่งนั้นได้

ในคอมพิวเตอร์ A ฉันพัฒนาโปรแกรมเพื่อสำรวจว่าไฟล์นั้นหรือไม่ rpme.dat มีอยู่หรือไม่ หากเป็นเช่นนั้นโปรแกรมจะคัดลอก rpme.dat ไปยังโฟลเดอร์อื่นแล้วเปลี่ยนชื่อ อย่างไรก็ตามบางครั้งเมื่อตรวจพบว่าไฟล์มีอยู่จริงก็ไม่ได้หมายความว่าการถ่ายโอนไฟล์เสร็จสิ้น ดังนั้นบางครั้งโปรแกรมของฉันก็อปปี้ไฟล์ที่บันทึกไว้บางส่วนแทนที่จะเป็นทั้งไฟล์ ฉันไม่เข้าใจว่าทำไม LAN ค่อนข้างเร็วและไฟล์มีขนาดเพียง 3 MB มีวิธีใดบ้างที่จะเพิ่มความเร็วของการถ่ายโอนไฟล์หรือวิธีที่เร็วกว่าในการแบ่งปันไฟล์ผ่าน LAN?

ป.ล. ถ้าฉันมีโปรแกรมในคอมพิวเตอร์รอ 5 วินาทีก่อนที่จะคัดลอกไฟล์มันใช้งานได้ดี 99% ของเวลาที่ฉันจะคัดลอกไฟล์ทั้งหมด แต่ด้วยเหตุผลบางอย่างฉันไม่สามารถรอได้นาน


ดังนั้นเหตุผลของคุณคือการถ่ายโอนไฟล์เร็วขึ้นคุณมีเวลามากขึ้นในการตรวจจับและคัดลอกไฟล์ โชคไม่ดีที่คำตอบของการถ่ายโอนไฟล์ที่เร็วกว่าบนเครือข่ายคือดิสก์ที่เร็วกว่า IO ในกรณีของคุณเนื่องจากคุณกำลังทำงานกับฮาร์ดแวร์เก่าคุณมักจะมีตัวเลือกที่ จำกัด แอป detect-n-copy ของคุณสังเกตเห็นไฟล์ใหม่อย่างไร คุณกำลังตรวจสอบในช่วงเวลาที่เฉพาะเจาะจงหรือคุณกำลังใช้วัตถุกรอบบางชนิด?
Frank Thomas

ขอบคุณสำหรับการตอบกลับ. แอปพลิเคชั่นที่ 3 จะส่งสัญญาณ (ตรรกะ "1" ผ่านสายเคเบิลภายนอกเฉพาะเพื่อแจ้งว่าไฟล์ใหม่กำลังถูกบันทึก) และรหัสของฉันกำลังรอสัญญาณ "1" ที่พอร์ตเคเบิล กระบวนการนี้รวดเร็ว อย่างไรก็ตามมันจะแจ้งเตือนเมื่อการบันทึกไฟล์เริ่มขึ้นเท่านั้น แต่จะไม่แจ้งเมื่อเสร็จสิ้น
user1285419

1
คุณอาจต้องการดูโดยใช้. net filesystemwatcher หรือองค์ประกอบจาวา watchservice (ฉันไม่ทราบว่าสิ่งที่คุณกำลังเขียนโปรแกรมรันไทม์) เพื่อรับสัญญาณเมื่อไฟล์เสร็จสิ้นการเขียนแทนที่จะต้องเดาว่าเมื่อไหร่จะเป็น เสร็จแล้ว
Frank Thomas
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.