我今天用TFileStream写了东西,就是不停的向TFileStream写东西,写到300多M的时候就不写了,
各位试过没有?是不是只能是300多M.
在Server.Accept过程中:
当Client.Active := True只是去连接Server,会触发Server的Accept,Accept侦听到一个ClientSocket: TSocket,然后Server根据这个ClientSocket来生成一个TServerClientWinSocket对象,放在Connection: TList中,那么这个过程中,在程序中可以通过GetSocket(
TObject *Sender,//Sender是TServerSocket对象
int Socket, //Socket就是Server.Accept回来的ClientSocket
TServerClientWinSocket *&ClientSocket) //它是个指针对象,如果你写了它的继承类,那就把它进行动态生成一个实例,那传回去的值会保存在Connection: TList中.
也就是我们用的ServerSocket1->Socket->Connection这个对象中.
如果是stThreadBlock模式,则继续触发事件:
GetThread(TObject *Sender, //同上
TServerClientWinSocket *ClientSocket, //一个对象实例了,就是刚在GetSocket中实例化的对象,如果你没定GetSocket,或没有对那个实例进行构造,那么会是默认构造一个TServerClientWinSocket.
TServerClientThread *&SocketThread)//这是线程模式中构造ServerSocket的线程对象,如果你想自己维护与客户的全部生存期的连接,那么你就自己写它的继承类,再在这构造它.
它们关系: GetSocket
Accept.ClientSocket => TServerClientWinSocket->SocketHandle => ServerSocket->Socket->Connection->SocketHandle