目前我传输文件用的方法是,服务器端循环往TCPSOCKET里WRITE 包,一个WHILE循环.
这是服务器端,当服务器端收到下载命令后,打开文件,然后进行下面的循环读取文件并发送.
while (maxsize > size)
{
memset (buff,0,101);
buff[0] = '$'; //文件传输中的包头
file.read(&buff[1],100); //从文件里读取数据到buff
size += socket->write(buff,readsize+1) - 1; //从buff写入socket
}
客户端的问题就来了.我应该用什么信号让客户端进行接收呢?
我试过用readReady 信号,然后执行一个槽函数,这个槽函数就是从socket里读取字节,然后写入文件,文件对象在另一个函数里已经打开了.
问题就是,只要一运行下载,服务器端显示是发送完毕,很成功,可客户端就死机了.
似乎用readReady做信号,槽函数执行次数过多造成的吧?
后来我试过用个按钮来调用客户端的这个槽函数,来手动读取数据,就没任何问题.
请问各位谁知道这个readReady信号在这里是不是只能用来作为数据开头的信号而不能重复循环.