public void ReceiveStart()
{
    try
    {
byte[] blen = new byte[4];
skt.Receive(blen, 0, 4, SocketFlags.Peek);
int len = BitChanger.NetWorkToInt32(blen, 0);
byte[] data = new byte[len];
skt.BeginReceive(data, 0, len, SocketFlags.None,new AsyncCallback(Receive_Callback),null);//这个data需要传递给下面的Callback函数
    }
    catch
    {    }
}private void Receive_Callback(IAsyncResult ar)
{
    try
    {
Head hd = new Head();
hd.Parse(data, 0);   //这里的data是从上面接收到的数据
ql.AddList(hd);
ReceiveStart();
skt.EndReceive(ar);
    }
    catch
   {   }
}
不一定要按我写的格式,只要给我个方案就可以了。
另注,以下方案不可行:
1。把data变成全局或者作为本类中的成员变量
2。该成同步套接字