2012-05-10 45 views
0

我需要監視我的應用程序,其在遠程計算機上執行的活動,所以我選用使用簡單SendLn/RecieveLn方法,但我不知道這是否將是非常大本地網內穩定(一臺服務器將收到來自大量計算機的簡單文本)。有沒有可能丟失TcpServer.ReceiveLn數據?

procedure Tform1.log(inp:string); 
begin 
    // 
    richEditText.Lines.Insert(0,inp); 
end; 

procedure TForm1.TcpServer1Accept(Sender: TObject; 
    ClientSocket: TCustomIpClient); 
    var buf:string; 
begin 
    // 
    log('accept:'+ClientSocket.RemoteHost); 
    log('accept:'+ClientSocket.Receiveln); 
end; 

回答

0

從來沒有保證交付 - 網絡問題看到這一點。客戶知道服務器已經被通知的唯一方法是,如果客戶端接收來自服務器的響應。然而,在狀態更新的情況下,只要完整的狀態在更新發送就可以,這樣,如果奇數消息丟失,沒有真正的問題,因爲接下來的消息左右會最終得到通過設計系統。除非你有永久的網絡問題,在這種情況下「sneakernet」是你唯一的選擇;-)

+0

對不起,也許你誤解了我的消息,我是問,以接受TCPSERVER和ReceiveLn方法,其內部調用的方法。我不知道它是如何管理線程(是嗎?)和所有的東西。其效果我會得到,如果5臺計算機會嘗試連接,然後Ttcpserver將執行accept方法?它會在同一時間執行還是不執行? –

相關問題