不懂recvfrom与recv,以及send与sendto。看了看msdn,但是没有看懂。
开始还以为一个是SOCK_STREAM,一个是SOCK_DGRAM用的。
原来区别好像不是这个,有没有大侠可以帮我讲讲。

解决方案 »

  1.   

    基本上来说
    recvfrom和sendto是用于无连接套接字的(比如UDP)
    而recv和send是用于面向连接套接字的
      

  2.   

    msdn上好像说Recv与Recvfrom都可以用于无连接套接字的。这个应该不是什么区别吧。
      

  3.   

    Recv是用于TCP连接中接收数据使用的,当你申明SOCK_STREAM后你就应该使用它,而RecvFrom是用于接收UDP数据包的,在申明SOCK_DGRAM后使用.Recv是面向连接的,而RecvFrom是面向无连接的.
      

  4.   

    但是Recv与Recvfrom都可以用于无连接套接字的呀?
      

  5.   

    Recv:
      读取面向连接的协议的数据时,套接字必须已经连接.
      读取无连接的协议的数据时,套接字必须绑定!
    再看看Recvfrom:
      套接字没有必要连接,但是本地IP必须已知,一般套接字不需要,也不建议绑定,可以通过对方的sendto函数间接绑定