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

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条回答

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!