2013-04-02 27 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