簡體   English   中英

TcpClient建議的發送間隔?

[英]TcpClient Recommended Sending Intervals?

MSDN幫助文件指出,在檢查TcpClient的“已連接”狀態之前,應始終向該客戶端發送消息。 我已經完成了,並且效果很好。

問題是,從多個客戶(數百個,數千個)的長期來看,這會造成多大的損失? 目前,我正在使用以下示例代碼進行測試:

Array.Clear( myBufferW , 0 , NetworkVars.TcpBufferWriteSize );
ByteBuffer.Buffer_SetOffset( 0 );
ByteBuffer.Buffer_Writeu8( ref myBufferW , ( byte ) 253 );
TcpPackets.TcpPacketSend( myStream , myBufferW , ByteBuffer.Buffer_GetOffset() );
if ( myClient.Connected == false ) {
    myThreading = false;
}

總是在每個TcpClient中發送此消息會很昂貴嗎? 如果我只是經常進行一次此檢查,那么成百上千的TcpClients同時提示此消息是否會很昂貴?

您無法在不發送數據,不接收答復或等待TCP堆棧超時的情況下,確定TCP連接是否仍然有效。 因此,您的代碼目前無法可靠地檢測到連接問題。

解決此問題的最佳方法是讓遠程方回復並確認。

總是在每個TcpClient中發送此消息會很昂貴嗎?

這樣做的成本是發送和接收一個小數據包。 它還花費一些CPU時間。 您在這里期望什么答案? 成本高昂取決於服務器擁有多少資源以及發生了什么。 我無法告訴您這對於您的案件而言是否昂貴了。

衡量性能成本。 在這里似乎並不特別困難。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM