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技术 , 其他语言