日期:2014-05-18  浏览次数:21221 次

未经处理的异常: System.InvalidCastException: 无法将类型为“System.Net.Sockets.O verlappedAsyn
在使用socket异步接收数据的时候出现的异常 

未经处理的异常: System.InvalidCastException: 无法将类型为“System.Net.Sockets.O
verlappedAsyncResult”的对象强制转换为类型“System.Net.Sockets.Socket”。

以下是部分代码 

C# code


socket.BeginReceive(heartBytes, 0, 1024, SocketFlags.None, new AsyncCallback(recHeartbeat), socket);

      private void recHeartbeat(IAsyncResult s)
        {
            try
            {
                Socket socketHeart = (Socket)s;
                int i = socketHeart.EndReceive(s);//结束异步 返回结果
                Console.Write(i.ToString());


求指教

------解决方案--------------------
s又不是Scoket类型,当然不能转了
试试 Socket socketHeart = (Socket)s.AsyncState
------解决方案--------------------
同上,两个类型不通……不能互转,要转的话,要用到强制类型转换