Tôi đã tạo một máy chủ và một máy khách trong C# để chuyển các tập tin. Nhưng khi chuyển nó tạm dừng trong vài giây và sau đó tiếp tục. Tôi đã tải lên một video trên YouTube để chứng minh: http://www.youtube.com/watch?v=GGRKRW6ihLoChuyển mạng tạm dừng
Như bạn có thể thấy, đôi khi tạm dừng và sau đó tiếp tục.
Receiver:
using (var writer = new StreamWriter(Path.Combine(_localPath, file.FileName))) {
var buffer = new byte[_bufferSize];
while (file.Transferred < file.Size && _active) {
int read = ns.Read(buffer, 0, _bufferSize);
writer.BaseStream.Write(buffer, 0, read);
file.Transferred += read;
}
writer.Close();
}
Tên người gửi:
using (var reader = new StreamReader(file.FilePath)) {
var buffer = new byte[_bufferSize];
while (file.Transferred < file.Size && _active) {
int read = reader.BaseStream.Read(buffer, 0, _bufferSize);
ns.Write(buffer, 0, read);
file.Transferred += read;
}
reader.Close();
}
+1 cho video :-) –
thông tin thêm một chút sẽ tốt đẹp là kết nối tcp hoặc udp? hiện nó chỉ gửi các tập tin thô trên kết nối hoặc là có một số giao thức ở đó? tôi không thấy tạm dừng trong video bù đắp gì? nó có thể là GC mà đá trong khi nó tạm dừng? Giao diện có treo hay chỉ luồng chỉ ghi dữ liệu? khi bạn truy cập% của quá trình chuyển là luồng an toàn được thực hiện này? – Peter
TcpClient và TcpListener. Tôi có một giao thức. Nó tạm dừng ở mức 6,2% và 24,03% chẳng hạn. Giao diện không treo. Nó hỗ trợ chuyển tập tin đồng thời, vì vậy tôi có thể có hai tập tin chuyển giao cùng một lúc và chuyển giao không tạm dừng cùng một lúc. Vâng, đó là chủ đề an toàn tôi tin, bởi vì điều này xảy ra trước khi tôi thêm chức năng đó. – ErikTJ