• WSASocket()与Socket()的区别 转


    /****************************************************

    WSASocket是Windows专用,支持异步操作;
    socket是unix标准,只能同步操作。

    Socket可采用多线程实现非阻塞

    *******原文:http://hi.baidu.com/%B9%A6%BB%D4cgh/blog/item/c610f713abbb0609b9127b99.html******/

    winsock是socket的windows平台的实现。winsock是微软专门为windows操作系统开发的socket网络编程接口,而socket是通用网络编程接口。
    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参数非法。

  • 相关阅读:
    Menu-actionBarMenu字体颜色修改
    actionBarTab-actionBarTab自定义 布局没法改变其中字体相对中间的位置
    Funui-overlay 如何添加theme 的 overlay
    java进阶——反射(Reflect)
    java工具类学习整理——集合
    Java实例练习——java实现自动生成长度为10以内的随机字符串(可用于生成随机密码)
    打通Java与MySQL的桥梁——jdbc
    SQL数据库操作整理
    PhpStorm 4.0 & 5.0 部署本地Web应用
    PhpStorm 4.0 & 5.0 部署本地Web应用
  • 原文地址:https://www.cnblogs.com/wolfplan/p/5998438.html
Copyright © 2020-2023  润新知