我hook了一个程序需要分析,他的原理是这样的,服务端对N个客户端共用一个send来给客户端发送数据,但是对每个客户端都分别用了一个线程去wsarecv接受数据我想请问一下,服务端与这些客户端连接时,send的s 与 wsarecv的第一个参数SOCKET s相同吗?(1v1的情况下是相同的),但是1vN我就想不通比方说服务端同客户端A交互所用的  SOCKET s  与  服务端同客户端B交互所用的  SOCKET s  相同吗?谢谢各位为小弟解惑,无限感激!

解决方案 »

  1.   

    每一个socket s都是一个对象. 就像是int a一样. 一不一样你自己应该知道啊.
    一般来说,服务器与A和B用来交互的不是同一个S.
      

  2.   

    send 与 recv 的sock的内容不一样.
      

  3.   


    谢谢兄弟,那我如果先在send记录下符合条件时的s,然后在wsarecv里面判断if这里的s与send里的s相同,则XXX,这样可以吗? 会影响服务器与其他客户端的通信吗? 谢谢
    谢谢你,但是为什么我在1v1的时候,可以得知wsarecv的s与send的s是相同的
      

  4.   

    可以.socket s, s 是个描述符,具体来说,是一个整数,它代表着一个socket 对象, 可以用来比较. 这个操作本身不会影响其它的通信.send(s1,....)和recv(s2,....)中的s1和s2都是输入参数, 是你自己输进去的值. 你想让他一样他就一样, 不让他一样他就不一样.