M
masm
Unregistered / Unconfirmed
GUEST, unregistred user!
例如传输一个文件,每次我们传输1K字节的数据
那么,在客户端建立一个线程,在循环里依次发送1K字节直到全部发送完毕断开连接;
在服务端,数据到了,服务端控件(如Indy)将自动建立一个对应的线程,立即运行其Execute过程。问题来了:
1、如果每次接收1K数据后,保存,退出,线程销毁;第二个数据包来了,再次建立运行,接收数据,保存,退出,线程销毁...如此循环,直到整个文件传输完毕。我已经按照这个原理验证过,一切正常。
2、第一次接收数据后,在线程中建立循环,在这个线程中读取完整的文件数据并保存后才退出这个线程并销毁。如果这样做,那么第二个数据包来了,服务端控件是否还会自动建立一个对应的线程?如果不是,那么服务端是如何知道我是每一次线程运行只读取1K数据,还是线程一旦运行就读取全部数据??
那么,在客户端建立一个线程,在循环里依次发送1K字节直到全部发送完毕断开连接;
在服务端,数据到了,服务端控件(如Indy)将自动建立一个对应的线程,立即运行其Execute过程。问题来了:
1、如果每次接收1K数据后,保存,退出,线程销毁;第二个数据包来了,再次建立运行,接收数据,保存,退出,线程销毁...如此循环,直到整个文件传输完毕。我已经按照这个原理验证过,一切正常。
2、第一次接收数据后,在线程中建立循环,在这个线程中读取完整的文件数据并保存后才退出这个线程并销毁。如果这样做,那么第二个数据包来了,服务端控件是否还会自动建立一个对应的线程?如果不是,那么服务端是如何知道我是每一次线程运行只读取1K数据,还是线程一旦运行就读取全部数据??