我刚学网络编程,对它的协议以及编程方法还不熟悉,看了《VisualC++实践与提高—网络编程篇》后,有个疑问:WinSock与WinInet有什么区别呢?它们的使用环境是怎样的?分别涉及到哪些协议?

解决方案 »

  1.   

    WinSock主要用来写基于Tcp/ip、Udp的程序。要自己定义应用协议或使用已有的网络上的应用协议(如FTP,Telnet,Http...)
    WinInet是对internet上的应用协议的封装。能方便的与Internet上的主机连接通信。一点愚见。
      

  2.   

    网络协议是一个分层的体系结构,WinSock与WinInet针对的是不同的层次,从本质上讲WinInet能做的WinSock也都可以做,但那要你自己编程实现,麻烦很多,WinInet可以看作是在WinSock的基础上做的一些开发,以便易于使用一些常用的功能,如FTP之类,如果你有其它方面的要求WinInet没有提供,则要用WinSock自己搞。如果对网络协议不熟悉的话,建议看看那方面的书,如经典的《用TCP/IP进行网际互联》.
      

  3.   

    WinInet只是用来作客户端开发。SOCKET API就没有这个限制。
      

  4.   

    对于网络协议ISO层及TCP/IP参考模型大概明白它们的分层方式,但就不太能将它们与编程连续起来。是不是说互联网层、传输层的数据传输都是要自己编写的?而WinSock和WinInet是对应不同层的?
      

  5.   

    WinInet是一个比Winsock高一层的API,但它只适用于HTTP、FTP和gopher的客户端程序(同步异步模式都可以)我们不能用WinInet创建服务器程序,wininet dll独立于winsock dll在提供专业性客户端程序支持方面,WinInet远远超过了Winsock
    优点:1.缓冲机制;
          2.安全机制;
          3.Web代理访问;
          4.提供I/O缓冲;
          5.API方便实用;
          6.用户友好性;在msdn上有一个例子,用WININET请求一个网页,并保存在磁盘上
      

  6.   

    同意 boris963(天行健)
    wininet只是在winsock基础上的一个开发库,由于是MS弄的,在性能上要好些,不过只能做应用层的一些程序
    winsock是从BSD上移植过来的,虽说做了许多精简,不过开发一些常用的网络程序已经够了。
      

  7.   

    经大家这么说,那么要写一个类似于FTP远程文件管理的程序应该用Winsock才行了?
      

  8.   

    也就是客户端,用wininet就可以的。
      

  9.   

    用什么取决与你的需求,如果是FTP上的应用,wininet应该可以了吧
      

  10.   

    wininet易用,功能有限。
    WinSock是比wininet底层,但功能相对多。
      

  11.   

    对于网络传输不是很明白,IP协议、FTP协议反映到编程上是怎么一回事呢?另外对于winsock和wininet的区别这样理解行吗?
    winsock是用在传输数据字符方面的,
    wininet是用在传输文件这方面的。
      

  12.   

    每一层协议处理之后的数据包都可以分成两部分,包头和协议数据单元(PDU)。比如,第N层协议会将N+1层的整个数据包作为自己的PDU,再根据协议加上一个包头(有时还有包尾),构成一个整体交给N-1层,当然如果N=0,物理层成包后将数据传出。FTP协议在应用层,它生成的整个数据包成为传输层的TCP协议的PDU,再加上TCP报头共同构成IP的PDU。
    楼上讲的“winsock是用在传输数据字符方面的,wininet是用在传输文件这方面的。”理解不正确。