2013-04-02 28 views
0

我正在在C#。在該應用程序的應用程序我使用communication.I已經寫代碼作爲接收在c#異步套接字通信可變大小的數據

byte[] byteData = new byte[1024]; 
clientSocket.BeginReceiveFrom(byteData, 0, byteData.Length, SocketFlags.None, ref m_EpReceive, new AsyncCallback(OnRceiveCallBack), objReceiverSocketState); 

這裏我得到的byteData異步插座可變大小意味着有時700字節,有時276字節(不固定)。在這裏我宣佈了1024尺寸的byteData。所以我的問題是,有什麼方法可以將byteData的大小聲明爲接收的確切數據量? (意思是我得到500字節,所以byteData的大小應該是500.)我也有問題,如果我已經將byteData的大小聲明爲1024,那麼它是等待總共1024字節還是得到了一些字節,然後它會調用OnRceiveCallBack方法嗎?請幫幫我。提前致謝。

回答

2

EndReceiveFrom會告訴你有多少字節已被接收。

public int EndReceiveFrom(
     IAsyncResult asyncResult, 
     ref EndPoint endPoint 
) 

由於MSDN說:

返回值
類型:System.Int32
如果成功,字節 接待人數。如果不成功,返回0.

+0

謝謝@AppDeveloper ...! – Dany