日期:2014-05-17  浏览次数:20780 次

TcpClient发送文件问题
本帖最后由 pwm812 于 2013-01-09 09:49:30 编辑
现在有一个问题,就是发送文件的时候,一般小文件(150KB以下的没问题),但是超过这个大小的时候就会卡在150KB左右,不管你文件多大,都会卡在这里,不知道怎么回事,我在想是不是服务器没有接收而堵塞了,但是也没有报错,纠结了很久,求大虾们帮助!!



发送方法
public void SendFile(IPEndPoint ipRemote, string sFilePath)
        {
            int iReadLen;
            byte[] fileData;
            NetworkStream nStream;
            //try
            //{
                tClient = new TcpClient(ipRemote.Address.ToString(), ipRemote.Port);
                tClient.SendBufferSize = Settings.iMaxBufferSize;
                FileStream fStream = new FileStream(sFilePath, FileMode.Open);
                nStream = tClient.GetStream();
                do
                {
                    fileData = new byte[Settings.iMaxBufferSize];
                    iReadLen = fStream.Read(fileData, 0, fileData.Length);
                    SendNow(fileData,iReadLen);
                    //nStream.Write(fileData, 0, iReadLen);
                    if (SendPartCompleted != null)
                        SendPartCompleted(iReadLen);

                } while (iReadLen > 0);
                nStream.Flush();
                fStream.Close();
                nStream.Close();
                if (SendAllCompleted != null)
                    SendAllCompleted();
            //}
            //catch (Exception e)
            //{
       &nb