Popular blog tags

一、socket 版本 socket 套接字TCP有两个版本1.1和2.0。在Visual C++的MFC类库中,提供了两个与WinSock相关的类,分别为CAsyncSocket类和CSocket类。这两个类对WinSock API进行了封装,使得开发Windows Socket应用程序变得简单了。 二、不同版本是有区别。 例如1.1版只支持TCP/IP协议,而2.0版可以支持多协议。2.0版有良好的向后兼容性,任何使用1.1版的源代码、二进制文件、应用程序都可以不加修改地在2.0规范下使用。此外winsock 2.0支持异步 1.1不支持异步. 三、版本的选择。 初始化时WSAStartup的功能之一就是协商版本。 MAKEWORD( 1, 1 ),MAKEWORD( 2, 2 ) 代表2.2版本。 #include "stdafx.h"      #include <stdio.h>   #include <Winsock2.h> //windows socket的头文件      #pragma comment( lib, "ws2_32.lib" )// 链接Winsock2.h的静态库文件   四、如何获取本系统的socket版本 WORD wVersionRequested;WSADATA wsaData;int err;wVersionRequested = MAKEWORD( 1, 1 );err = WSAStartup( wVersionRequested, &wsaData );if ( err != 0 ) {/* Tell the user that we could not find a usable *//* WinSock DLL. */return;}/* Confirm that the WinSock DLL supports 1.1.*//* Note that if the DLL supports versions greater *//* than 1.1 in addition to 1.1, it will still return *//* 1.1 in wVersion since that is the version we *//* requested. */if ( LOBYTE( wsaData.wVersion ) != 1 ||HIBYTE( wsaData.wVersion ) != 1 ) {/* Tell the user that we could not find a usable *//* WinSock DLL. */WSACleanup( );return; }/* The WinSock DLL is acceptable. Proceed. */ 五、   六、Socket,TCP,UDP,HTTP,WebSocket的区别 TCP,UDP:是一种传输方式,比如去北京,可以选择飞机、火车等交通方式。 HTTP,XMPP则是数据传输格式协议。 HTTP协议是非持久化的,单向的网络协议,在建立连接后只允许浏览器向服务器发出请求后,服务器才能返回相应的数据。当需要即时通讯时,通过轮询在特定的时间间隔(如1秒),由浏览器向服务器发送Request请求,然后将最新的数据返回给浏览器。这样的方法最明显的缺点就是需要不断的发送请求,而且通常HTTP request的Header是非常长的,为了传输一个很小的数据 需要付出巨大的代价,是很不合算的,占用了很多的宽带。 缺点:会导致过多不必要的请求,浪费流量和服务器资源,每一次请求、应答,都浪费了一定流量在相同的头部信息上 WebSocket:同HTTP一样也是应用层的协议,但是它是一种双向通信协议,是建立在TCP之上的。然而WebSocket的出现可以弥补这一缺点。在WebSocket中,只需要服务器和浏览器通过HTTP协议进行一个握手的动作,然后单独建立一条TCP的通信通道进行数据的传送。   TCP、UDP,HTTP 底层通信都是通过 socket 套接字实现 。  .