| Thành viên | Trả lời |
coder9x

3 bài
| 17-12-2012 15:25:7 Mình có bài truyền và nhận file dung lượng lớn qua mạng LAN, cố gắng làm truyền dk đến 1.5G rồi nhưng nhích lên 2G là bị lỗi như hình dưới, hình như file lớn quá thì phải, mong anh em đọc code sửa giúp mình với

Đây là source code. [url]http://www.mediafire.com/?y9az2fb539r9qag[/url]
Đoạn code này có các kiểu dữ liệu cho các biến và bộ nhớ đệm, chắc phát sinh quá tải ở đây. [CODE] private void startSever() { try { set1("Listening"); IPEndPoint ip = new IPEndPoint(IPAddress.Parse(ipServer.Text), int.Parse(port.Text)); tcpListener = new TcpListener(ip); tcpListener.Start(); socketForClient = tcpListener.AcceptSocket(); if (socketForClient.Connected) { NetworkStream ns = new NetworkStream(socketForClient); StreamReader sr = new StreamReader(ns); StreamWriter sw = new StreamWriter(ns); string filename = txtFileName.Text; nwkStream = new NetworkStream(socketForClient); stmReader = File.OpenRead(txtFileName.Text); stmWriter = nwkStream; FileInfo flInfo = new FileInfo(txtFileName.Text); long size = Convert.ToInt64(flInfo.Length); byte[] buff = new byte[32 * 2048]; int len = 0; long progress = 0; set1("Starting"); sw.WriteLine(filename); sw.Flush(); while ((len = stmReader.Read(buff, 0, 2048)) != 0) { progress += len; set3(size, progress); set(progress.ToString() + " Byte of " + size + " Byte"); stmWriter.Write(buff, 0, len); stmWriter.Flush(); } set1("File has sent succesfully!"); } } catch (Exception ex) {
MessageBox.Show(ex.ToString()); } finally { if (socketForClient != null) { socketForClient.Close(); nwkStream.Close(); stmWriter.Close(); stmReader.Close(); tcpListener.Stop(); } } }[/CODE]
|
 |