Visualc++网络编程概述

Socket套接字

  • windows编写网络驱动程序时,需要使用WindowsSocket(windows套接字),与windows套接字相关的api函数曾为Winsock函数
  • 网络通讯双方有各自的套接字,并且该套接字与特定的ip地址与端口号相关联,套接字有两种类型,分别是流式套接字(SOCK_STREAM)和数据报套接字(SOCK_DGRAM),其中流式套接字专门用于TCP程序的应用程序中而数据报套接字专门用于使用UDP协议进行通讯的应用程序中。

网络字节顺序

  • 网络字节顺序是指TCP/IP协议中规定的数据传输使用格式,与之相对应的字节顺序是主机字节顺序。网络字节顺序表示首先将数据中最重要的字节进行存储,例如当数据0x358457使用网络字节顺序进行存储,该值在内存中的存放顺序是0x35、0x84、0x57因为通讯数据可能会在不同的机器之间进行传输,所以通讯数据必须以相同格式整理。只有经过格式处理的通信数据,才能在不同的机器之间进行传输。

Windows Sockets

CAsyncSocket类

  • 在微软的基础类中,CAsyncSocket封装了异步套接字的基本功能,用户使用该类进行网络数据传输步骤如下:
    • 调用构造函数创建套接字对象
    • 创建服务器套接字,调用Bind()绑定本地ip和端口,然后调用函数Listen()监听客户端请求,如果请求到来调用Accept()进行响应,如果创建客户端套接字,直接调用Connect()连接服务器即可。
    • 调用Send()等功能函数进行数据的传输与处理。
    • 关闭与销毁套接字对象

CSocket类

  • CSocket派生于CAsyncSocket类,该类不但具有CAsyncSocket类的基本功能,还具有串行化的功能。
  • 在用户实际编程中将CSocket与CSocketFile和CArchive类一起使用能够很好的管理以及发送数据。用户使用该类进行网络编程步骤如下:
    • 创建socket类对象
    • 如果创建服务端套接字,则调用函数Bind()绑定本地ip地址和端口,然后调用函数Listen()监听客户端请求。如果请求到来,则调用函数Accept()响应请求如果创建客户端套接字,则调用函数Connect()连接服务器即可。
    • 创建与CSocket相关联的CSocketFile类对象
    • 创建与CSocketFile类相关联的CArchive对象
    • 使用CArchive类对象在客户端与服务端之间进行数据传输
    • 关闭或销毁CSocket、CSocketFile和CArchive类
posted @ 2020-05-05 14:43  一生热爱  阅读(436)  评论(0编辑  收藏  举报