各位高手:为什么在tcp连接中要调用listen函数后才能accpet接受,而udp就不需要,accpet函数需要listen函数为他做哪些工作呢?困惑呀!!顺便帮忙推荐一下讲解socket的书吧,先多谢了!!

解决方案 »

  1.   

    面向连接和无连接之间的区别,具体看socket的原理
      

  2.   

    tcp方式的socket是面向连接的,服务端和客户端要先建立连接,所用服务端会用listen方法监听客户端的连接。
      

  3.   

    我认为之所以使用listen是用来确定有客户端主动来连接,要不然干嘛分tcp和udp两种方式呢?
    其实说到底是对应OSI的传输层协议的具体应用而产生的。
      

  4.   

    看资料了解协议的定义自然就知道了
    TCP/IP协议
      

  5.   

    这是由于TCP和UDP的区别了。TCP是面向流的,它可以保证数据传输的可靠性和稳定性即要先LISTEN,然后知道有人发送来数据了,再ACCEPT,而UDP是面向数据报的,只能保证及时性,可靠性什么的则要靠应用层来保证了,也就是它想传输数据的时候就发送,根本不用问下对方现在是不是有空接收,即UDP只要CONNECT就可以SENDTO了。
    这些其实你只要找本这方面的书,上面都会有介绍的。