WinSock基础

一、 WinSock编程常用数据结构

  套接字是网络通信过程中端点的抽象表示,包含了连接使用的协议,本地主机的IP地址,本地进程的协议端口,远程主机的IP地址和远程进程的协议端口。

  sockaddr_in结构对有关Socket的信息进行封装。

  struct sockaddr_in{

    short sin_family;//指网络中表示不同设备时使用的地址类型,对于IP地址,它的类型                                           是AF_INET

    unsigned short sin_port;//指Socket对应的端口号

    IN_ADDR sin_addr;//是一个结构,将IP进行了封装

    char sin_zero[8];//一个用来填充结构的数组,字符全为0,这个结构对于不同的地址类型                                             可 以是相同的大小

  };

  in_addr结构对IP地址进行了封装,既可以用4个单字节数表示,也可以转换成两个双字节数表示或者一个四字节数表示。

  struct in_addr {

    union {

      struct { u_char s_b1, s_b2, s_b3, s_b4; } S_un_b;

      struct { u_short s_w1, s_w2; } S_un_w;

      u_long S_addr;

    } S_un;

  };

二、 Windows Sockets基础

   1. CAsyncSocket类:封装了异步套接字的基本功能。

  使用该类进行网络数据传输的步骤:首先调用构造函数创建套接字对象;如果创建服务器端套接字,则调用函数Bind()绑定本地IP和端口,然后调用函数Listen()监听客户端的请求;如果请求到来,则调用Accept()响应该请求,如果创建客户端套接字,则直接调用Connect()连接服务器即可;调用Send()等功能函数进行数据传输与处理;关闭或销毁套接字对象。

  2. CSocket类:派生于CAsyncSocket类,不仅具有它的基本功能,还具有序列化的功能。

  使用该类编程的步骤:创建CSocket对象;如果创建服务器端套接字,则调用函数Bind()绑定本地IP和端口,然后调用函数Listen()监听客户端的请求;如果请求到来,则调用Accept()响应该请求,如果创建客户端套接字,则直接调用Connect()连接服务器即可;创建与CSocket类对象相关联的CSocketFile类对象;创建与CSocketFile类相关联的CArchive对象;使用CArchive类对象在客户端和服务器之间进行数据传输;关闭或销毁CSocket类、CSocketFile类和CArchive类的3个对象。

  

转载请注明:http://www.cnblogs.com/zhyLeos/
原文地址:https://www.cnblogs.com/zhyLeos/p/8890854.html