G--G 2016-12-21 02:52 采纳率: 0%
浏览 1823
已结题

C# 的服务器向之前登陆的时候保存的客户端Socket发送数据的时候报错了

报错:The operation is not allowed on non-connected sockets.
问题是这样的,制作添加好友模块时,遇到了一个问题,就是在登录的时候,服务端会通过ID绑定那个Socket:


//目前在线的客户端字典,与ID绑定
Dictionary<int, Socket> DicOnlineClients;

绑定:

 //向目前在线的客户端列表添加这个客户端
DicOnlineClients.Add(playerID, packet._peer);

然后发送好友请求的时候会通过这个ID发到与这个ID绑定的Socket上,前提是这个客户端没有离线

 //获取此ID的Socket
Socket socket;
if (DicOnlineClients.TryGetValue(FriendID,out socket))
{
    _server.Send(SendStream, socket);
}

但是问题出在,在Send的时候,报错了 The operation is not allowed on non-connected sockets.
可是我客户端的socket明明是在线的啊
请大神帮忙解答下。或者有没有其他的方法,用于向指定的客户端发送数据的,我这里用的是通过玩家ID辨识

  • 写回答

2条回答 默认 最新

报告相同问题?

悬赏问题

  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用
  • ¥15 我想付费需要AKM公司DSP开发资料及相关开发。
  • ¥15 怎么配置广告联盟瀑布流
  • ¥15 Rstudio 保存代码闪退
  • ¥20 win系统的PYQT程序生成的数据如何放入云服务器阿里云window版?
  • ¥50 invest生境质量模块