网站首页  词典首页

请输入您要查询的计算机术语:

 

术语 CAsyncSocket::Send
释义 CAsyncSocket::Send

virtual int Send( const void* lpBuf, int nBufLen, int nFlags = 0 );

返回值:
调用成功时,返回发送的字节数(可能比nBufLen要小)。否则返回SOCKET_ ERROR,可以调用GetLastError获得特定的错误代码。此成员函数可用的错误代码有:
·WSANOTINITIALISED在调用本API函数之前,必须已经成功地执行AfxSocketInit。
·WSAENETDOWNWindows Sockets检测到网络系统故障。
·WSAEACCES请求的地址是广播地址,但是相应的位没有被设置。
·WSAEINPROGRESS正在进行一个成块的Windows Sockets操作。
·WSAEFAULT参数lpBuf无效,不是用户地址空间中的有效地址。
·WSAENETRESET连接需要重置,因为Windows Sockets的实现删除了连接。
·WSAENOBUFSWindows Sockets的实现发现了缓冲的死锁。
·WSAENOTCONN套接字没有连接上。
·WSAENOTSOCK描述符不是一个套接字。
·WSAEOPNOTSUPP设置了MSG_OOB,但套接字不是SOCK_STREAM类型的。
·WSAESHUTDOWN套接字已经关闭,调用ShutDown(参数nHow被设为1或2)后,不能在套接字上调用Send。
·WSAEWOULDBLOCK套接字被标记为非成块的,但请求发送操作将产生成块。
·WSAEMSGSIZE套接字类型为SOCK_DGRAM,数据报大于Windows Sockets实现所支持的最大值。
·WSAEINVAL套接字没有用Bind绑定。
·WSAECONNABORTED由于超时或其它故障使虚电路异常终止。
·WSAECONNRESET远端重置了虚电路。

参数:
lpBuf存放待发送数据的缓冲。
nBufLenlpBuf缓冲中待发送数据的字节数。
nFlags设置函数调用的方式。函数的语义由套接字选项和nFlags共同决定。nFlags由下面的任一个值构成,可用C++的OR操作符组合使用:
·MSG_DONTROUTE表明数据不受路由的限制,WindowsSockets提供者(兼容Windows Sockets的软件厂商)可以忽略这个标志。请参阅联机文档“Win32 SDK”的“Windows套接字编程注意事项”中关于SO_DONTROUTE选项的讨论。
·MSG_OOB处理带外数据(仅用于SOCK_STREAM类型的套接字)。

说明:
本函数用于在一个连接的套接字上发送数据。它可以在流套接字或数据报套接字上写出数据。对数据报型的套接字,注意不要使数据包超出网络支持的最大IP包的大小。这个值由AfxsocketInit返回的WSADATA结构中的成员iMaxUdpDg给出。如果数据超出这个长度,数据将不会发送,错误代码被设置为WSAEMSGSIZE,可以调用GetLastError得到这个错误代码。
注意,对于数据报套接字,Send的成功结束并不意味着数据一定成功地发送到了目的地。
对于SOCK_STREAM类型的CAsyncSocket对象,写出的字节数可以在1和请求发送的字节数之间,它依赖于本地主机和目的主机的缓冲大小。

请参阅:
CAsyncSocket::Create, CAsyncSocket::Receive, CAsyncSocket::ReceiveFrom, CAsyncSocket::SendTo
随便看

 

MFC类库中文详解手册包含4274条MFC类库参考词条,基本涵盖了Microsoft基本类库中的类、全局函数、全局变量和宏的内容,是计算机编程的有利工具。

 

Copyright © 2004-2023 Winrtm.com All Rights Reserved
京ICP备2021023879号-40 更新时间:2024/10/6 12:26:45