套接口库函数参考(四十六)

2010-12-30 21:03:01 · 作者: · 浏览: 59221
,应用程序可通过WSAGetLastError()获取相应错误代码。

 

错误代码:

  WSANOTINITIALISED:在使用此API之前应首先成功地调用WSAStartup()

  WSAENETDOWNWINDOWS套接口实现检测到网络子系统失效。

  WSAEINVAL:超时时间值非法。

  WSAEINTR:通过一个WSACancelBlockingCall()来取消一个(阻塞的)调用。

  WSAEINPROGRESS:一个阻塞的WINDOWS套接口调用正在运行中。

  WSAENOTSOCK:描述字集合中包含有非套接口的元素。

 

参见:

  WSAAsyncSelect(), accept(), connect(), recv(), recvfrom(), send().

 

 

5.1.19 send()

简述:

  向一个已连接的套接口发送数据。

 

  #include <winsock.h>

 

  int PASCAL FAR send( SOCKET s, const char FAR* buf, int len, int flags);

 

  s:一个用于标识已连接套接口的描述字。

  buf:包含待发送数据的缓冲区。

  len:缓冲区中数据的长度。

  flags:调用执行方式。

 

注释:

  send()适用于已连接的数据报或流式套接口发送数据。对于数据报类套接口,必需注意发送数据长度不应超过通讯子网的IP包最大长度。IP包最大长度在WSAStartup()调用返回的WSADataiMaxUdpDg元素中。如果数据太长无法自动通过下层协议,则返回WSAEMSGSIZE错误,数据不会被发送。

  请注意成功地完成send()调用并不意味着数据传送到达。

  如果传送系统的缓冲区空间不够保存需传送的数据,除非套接口处