既然socket不能强行关闭客户端那请问可以单独给某个客户发消息吗?

解决方案 »

  1.   

    服务端不能强行关闭客户端的程序,不过应该可以关闭socket连接
    单独给某个客户端发消息当然是可以的,不过我觉得你思路有问题
    既然是客户端主动给服务端发送aaaaaaaa,客户端直接把连接关闭了不好吗,为什么要通知服务端去关闭连接呢?
      

  2.   

    客户端可以直接关闭socket连接啊,然后服务端的阻塞received方法会返回0,就代表客户端已断开。
    我说的是tcp啊
      

  3.   

    我告诉老板 我今天的工作完成了.. 那么 我随手就关闭了电脑...但是你却不是这样...老板,我今天的工作完成了.请帮我关机吧.....正如红孩儿说的一样.你都知道你要XXOO,那么你发送信息完事就XXOO就好啦何必让别人帮你XXOO..
      

  4.   

                        try
                        {
                            socket.Shutdown(SocketShutdown.Both);
                        }
                        catch (Exception exp)
                        {
                             //处理异常
                        }
                        socket.Close();
      

  5.   

    服务器端关闭是有用的,客户端自己关闭有个bug,这个bug经常被用来在网游中复制装备
      

  6.   

    什么BUG,能说详细点吗?
    而且既然是BUG,肯定是跟编译器有关的吧,难道是TCP协议本身的BUG吗
      

  7.   

    什么BUG,能说详细点吗?
    而且既然是BUG,肯定是跟编译器有关的吧,难道是TCP协议本身的BUG吗大致的机理是:客户端模拟socket关闭(比如线程劫持或者被其他工具强行挂起),而没有按照应用层协议发送关闭指令正常结束会话。服务端发送的数据超时,可能会尝试重发,客户端那边此时恢复挂起的线程,一下子便收到了两条数据(装备)
      

  8.   

    不过大多数游戏装备都会有一个唯一的ID,此时可能还要加入一些别的东西,比如抓包,然后修改数据包中的关键项,然后挂起原来的线程,用工具绑定游戏中使用的本地端口,发送模拟的数据包,等服务端响应后,再恢复,OK,又成功了,高兴吧