- 註冊時間
 - 2006-3-13 
 - 最後登錄
 - 2025-7-23 
 - 在線時間
 - 675 小時 
 - 閱讀權限
 - 200 
 - 積分
 - 417 
 - 帖子
 - 1109 
 - 精華
 - 0 
 - UID
 - 2 
  
 
 
 
    
 | 
 
利用 TWinSocketStream 可以做到 
- var
 
 -   TServerWinSocket serverSocket;
 
 -   TClientWinSocket clientSocket;
 
 -   TFileStream inFile, outFile;
 
 -   // 假設各 Stream 都已 created
 
  
- // 在 Server 端 
 
 - // Client send 一個命令告知 Server 要由 536 bytes 開始傳
 
 - inFile.Position := 536;
 
 - wtih TWinSocketStream.Create(serverSocket, 60000) do
 
 - begin
 
 -   CopyFrom(inFile, inFile.Size - inFile.Position + 1);
 
 -   Free;
 
 - end;
 
  
- // 在 Client 端 OnReadEvent 中
 
 - memStream = TMemoryStream.Create;
 
 - memStream.Size = TOTAL_FILE_SIZE;
 
 - memStream.Position := 0;
 
 - socketStream := TWinSocketStream.Create(clientSocket, 60000) do
 
 - if socketStream.WaitForData(60000) then // give the client 60 seconds writing
 
 -   socketStream.Read(PCharArray(memStream.Memory)^, TOTAL_FILE_SIZE)
 
 - memStream.Position := 0;
 
 - outFile.Position := 536;
 
 - outFile.CopyFrom(memStream);
 
  
- // 释放全部的对象
 
  複製代碼 |   
 
  
 |