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参数非法。

时间: 2024-07-30 13:47:51

Socket()与WSASocket()的区别的相关文章

TCP/IP,Http,Socket,XMPP的区别

大学学习网络基础的时候老师讲过,网络由下往上分为物理层.数据链路层.网络层.传输层.会话层.表示层和应用层.通过初步的了解,我知道IP协议对应于网络层,TCP协议对应于传输层,而HTTP协议对应于应用层,三者从本质上来说没有可比性,socket则是对TCP/IP协议的封装和应用(程序员层面上).也可以说,TPC/IP协议是传输层协议,主要解决数据如何在网络中传输,而HTTP是应用层协议,主要解决如何包装数据.关于TCP/IP和HTTP协议的关系,网络有一段比较容易理解的介绍: “我们在传输数据时

socket与http的区别

1.TCP连接 手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接.TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在"无差别"的网络之上. 建立起一个TCP连接需要经过"三次握手": 第一次握手:客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认: 第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+A

Http、Socket 、TCP的区别

本质区别 IP:网络层协议: TCP和UDP:传输层协议: HTTP:应用层协议: SOCKET:不是协议,TCP/IP网络的API. TCP/IP代表传输控制协议/网际协议,指的是一系列协议集. TCP和UDP是HTTP.FTP.SMTP等协议使用的传输层协议. TCP和UDP使用IP协议从一个网络传送数据包到另一个网络.把IP想像成一种高速公路,它允许其它协议在上面行驶并找到到其它电脑的出口.TCP和UDP是高速公路上的"卡车",它们携带的货物就是像HTTP,FTP这样的协议等.

Java Socket 编程之Socket与ServerSocket的区别

http://www.cnblogs.com/hq-antoine/archive/2012/02/11/2346474.html 1.1 ServerSocket类    创建一个ServerSocket类,同时在运行该语句的计算机的指定端口处建立一个监听服务,如:     ServerSocket MyListener=new ServerSocket(600):     这里指定提供监听服务的端口是600,一台计算机可以同时提供多个服务,这些不同的服务之间通过端口号来区别,不同的端口号上提

TCP与UDP在socket编程中的区别 (网络收集转载)

http://blog.chinaunix.net/uid-26421509-id-3814684.html 一.TCP与UDP的区别 基于连接与无连接  对系统资源的要求(TCP较多,UDP少)  UDP程序结构较简单  流模式与数据报模式  TCP保证数据正确性,UDP可能丢包  TCP保证数据顺序,UDP不保证  部分满足以下几点要求时,应该采用UDP 面向数据报方式 网络数据大多为短消息  拥有大量Client  对数据安全性无特殊要求  网络负担非常重,但对响应速度要求高  具体编程时

TCP与UDP在socket编程中的区别

一.TCP与UDP的区别 基于连接与无连接  对系统资源的要求(TCP较多,UDP少)  UDP程序结构较简单  流模式与数据报模式  TCP保证数据正确性,UDP可能丢包  TCP保证数据顺序,UDP不保证  部分满足以下几点要求时,应该采用UDP 面向数据报方式 网络数据大多为短消息  拥有大量Client  对数据安全性无特殊要求  网络负担非常重,但对响应速度要求高  具体编程时的区别 socket()的参数不同  UDP Server不需要调用listen和accept  UDP收发数

【转】Windows Socket和Linux Socket编程有什么区别

socket相关程序从Windows移植到Linux下需要注意的: 1)头文件 Windows下winsock.h/winsock2.h Linux下sys/socket.h 错误处理:errno.h 2)初始化 Windows下需要用WSAStartup Linux下不需要 3)关闭socket Windows下closesocket(...) Linux下close(...) 4)类型 Windows下SOCKET Linux下int 如我用到的一些宏: #ifdef WIN32 typed

http与socket和https的区别

1. http与socket的区别,两个协议哪个更高效一点? 创建socket连接时,可以指定使用的传输层协议,socket可以支持不同的传输层协议(TCP或UDP),当使用TCP协议进行连接时,该socket连接就是一个TCP连接.socket连接一旦建立,通信双方即可开始相互发送数据内容, 直到双方连接断开.注意,同HTTP不同的是http只能基于tcp,socket不仅能走tcp,而且还能走udp,这个是socket的第一个特点. HTTP连接使用的是“请求-响应”的方式,不仅在请求时需要

网络协议中HTTP,TCP,UDP,Socket,WebSocket的优缺点/区别

先说一下网络的层级:由下往上分为 物理层.数据链路层.网络层.传输层.会话层.表示层和应用层 1.TCP和UDP TCP:是面向连接的一种传输控制协议.属于传输层协议.TCP连接之后,客户端和服务器可以互相发送和接收消息,在客户端或者服务器没有主动断开之前,连接一直存在属于长连接. 优点:安全.传输数据无大小限制.准确可靠,先发先至 缺点:效率低,不能做离线任务.连接有耗时 UDP:是面向非连接的用户数据报协议.属于传输层协议.所谓的无连接就是在传输数据之前不需要交换信息,没有握手建立连接的过程