zoukankan      html  css  js  c++  java
  • Socket()与WSASocket()的区别

    socket()   创建一个通讯端点并返回一个套接口。但是在socket库中例程在应用于阻塞套接口时会阻塞。  
      WSASocket()的发送操作和接收操作都可以被重叠使用。接收函数可以被多次调用,发出接  
      收缓冲区,准备接收到来的数据。发送函数也可以被多次调用,组成一个发送缓冲区队列。  
      可是socket()却只能发过之后等待回消息才可做下一步操作!

      Header: Declared in Winsock2.h.
      Library: Use Ws2_32.lib.

    SOCKET WSASocket(

      int af,

      int type,

      int protocol,

      LPWSAPROTOCOL_INFO lpProtocolInfo,

      GROUP g,

      DWORD dwFlags

    );

           af:地址族描述。目前仅支持PF_INET格式,亦即ARPA Internet地址格式。

      type:新套接口的类型描述。

      protocol:套接口使用的特定协议,如果调用者不愿指定协议则定为0。

      lpProtocolInfo:一个指向PROTOCOL_INFO结构的指针,该结构定义所创建套接口的特性。如果本参数非零,则前三个参数(af, type, protocol)被忽略。  

           g:套接口组的描述字。

      iFlags:套接口属性描述。

    返回值:

      若无错误发生,WSASocket()返回新套接口的描述字。否则的话,返回 INVALID_SOCKET,应用程序可以调用WSAGetLastError()来获取相应的错误代码。

      错误代码:

      WSANOTINITIALISED                在调用本API之前应成功调用WSAStartup()。

      WSAENETDOWN                      网络子系统失效。

      WSAEAFNOSUPPORT              不支持指定的地址族。

      WSAEINPROGRESS                 一个阻塞的WinSock调用正在进行中,或者服务提供者仍在处理一个回调函数

      WSAEMFILE                              无可用的套接口描述字。

      WSAENOBUFS                          无可用的缓冲区空间。套接口无法创建。

      WSAEPROTONOSUPPORT      不支持指定的协议。

      WSAEPROTOTYPE                  指定的协议对于本套接口类型错误。

      WSAESOCKTNOSUPPORT      本地址族不支持指定的套接口类型。

      WSAEINVAL                               g参数非法。

  • 相关阅读:
    python学习笔记 async and await
    python学习笔记 异步asyncio
    python学习笔记 协程
    python学记笔记 2 异步IO
    python学习笔记 可变参数关键字参数**kw相关学习
    逆波兰表达式 栈表达式计算
    Codeforces 270E Flawed Flow 网络流问题
    Codeforces 219D Choosing Capital for Treeland 2次DP
    kuangbin 带你飞 概率期望
    函数式编程思想:以函数的方式思考,第3部分
  • 原文地址:https://www.cnblogs.com/zhaoxinshanwei/p/4095950.html
Copyright © 2011-2022 走看看