我的socket传输速度怎么这么慢??
我用mfc的socket类编料一个内网的文件传输程序,基于tcp协议。实现过程大致如下:
首先文件的发送端连接接收端的监听线程,监听线程用一个新的线程去accept它。这个新的线程有一个单独的类。
我在这个类里面做了如下处理:
在onreceive函数里receive数据并交给这个类其他函数处理。如果是接收到的一个发送文件的请求,并附带有文件的相关信息,就弹出一个对话框,让用户处理是否接收。如果接收,就发送一个确认信息给发送端。发送端接收到这个信息后就开辟一个线程,用while循环读取文件并发送。接收端就接收并向硬盘里面里写(还是在onreceive里面接收并交给其他函数处理。发现速度不到一M。后来我把接收这端改了一下,改为用一个线程(while循环)来接收(但还是采用的刚才那个类,所以onreceive函数里就不能接收了,直接return)。补充一点:文件的信息还是在onreceive函数里面接收并交给其他函数处理。也就说我的接收线程是在用户点击确定接收的按钮后开辟的。改了速度就更慢了。我用其他软件传50m的东西5,6秒就搞定了,我这个估计得5-6分钟。怎么回事啊,望高手们指教。还有这个程序运行时cpu占用率经常来个0%。就感觉它在那儿没干事。还有一两天就交了。再不出来我就快跳楼了。