当前位置:编程学习 > C#/ASP.NET >>

Socket的问题,关于StateObject

终于找到问题所在了,但不晓得该如何来解决

经过测试发现state.workSocket的值很多时候都是null,也有不是null的时候,但是state.buffer一直都存在的

程序必须执行这一部handler.EndReceive(ar),自然state.workSocket的值是null,handler.EndReceive(ar)也就是了

请问这个问题该如何解决呢,为什么传过来大多数都是null

代码如下

private void ReceiveData(IAsyncResult ar)
        {
            try
            {

                Socket handler = null;

                StateObject state = (StateObject)ar.AsyncState;

                handler = state.workSocket;

                if (handler == null) return;

                handler.EndReceive(ar);

                state.sb.Append(System.Text.Encoding.Unicode.GetString(state.buffer));

                string str = state.sb.ToString();

                //清空state.sb的值
                  state.sb.Remove(0, str.Length);
            }
            catch(Exception Err)
            {
                MessageBox.Show(Err.ToString());
            }
       } --------------------编程问答-------------------- 好的谢谢
补充:.NET技术 ,  其他语言
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,