Socket.BeginRcecive() 错误~

刘_半仙 2012-12-03 09:39:49
未处理 System.NullReferenceException
Message=未将对象引用设置到对象的实例。
Source=Server
StackTrace:
在 Server.Form1.aa() 位置 D:\My Documents\Visual Studio 2010\Projects\S_kyo_idiot\Server\Form1.cs:行号 45
在 System.Threading.ThreadHelper.ThreadStart_Context(Object state)
在 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
在 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
在 System.Threading.ThreadHelper.ThreadStart()
InnerException:


 
C[C_Num] = s.Accept();
C[C_Num].BeginReceive(MsgBuffer, 0, MsgBuffer.Length, SocketFlags.None,
new AsyncCallback(Rcallback),C[C_Num]);


accept 成功了
然后执行下一段代码就出错

Server端进程关闭


大家帮忙看看啊
什么错误怎么解决啊~~~
...全文
79 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
刘_半仙 2012-12-04
  • 打赏
  • 举报
回复
引用 3 楼 qiaohuyue 的回复:
对象 为null 了这问题直接F11 跟踪
跟踪过了 C[C_num] 未连接的为null 还有 MsgBuffer 也为空 。。 多次检查发现时 MsgBuffer byte[] 也为空 给MsgBuffer 随便一个初值 就可以运行了。。。 3Q各位了
XBodhi. 2012-12-04
  • 打赏
  • 举报
回复
对象 为null 了这问题直接F11 跟踪
刘_半仙 2012-12-04
  • 打赏
  • 举报
回复
引用 1 楼 zdbb 的回复:
估计是accept未成功,然后C[C_Num]为null,你可以判断下 C[C_Num] = s.Accept(); if (C[C_Num]!=null) C[C_Num].BeginReceive(MsgBuffer, 0, MsgBuffer.Length, SocketFlags.None, new AsyncCallback(Rcallba……
accept成功了,C_Num 我定义有初值为0 的 然后再一次连接线程中 +1 问题就是beginReceive 这里 难道是 MsgBuffer 没给初值? 可是我应该给个什么样的初值呢。。
只在此山中 2012-12-04
  • 打赏
  • 举报
回复
估计是accept未成功,然后C[C_Num]为null,你可以判断下 C[C_Num] = s.Accept(); if (C[C_Num]!=null) C[C_Num].BeginReceive(MsgBuffer, 0, MsgBuffer.Length, SocketFlags.None, new AsyncCallback(Rcallback),C[C_Num]);

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧