WSASend函数的使用方法

这个函数提供的功能是建立在标准的recv函数之上的,下面三点是关键的地方:
1.可以和重叠socket连接来执行重叠接收操作
2.允许指定多哥接收缓冲区,是scatter/gather类型的I/O可用
3.lpflags参数是一个输入输出参数,允许应用程序探测输出状态的MSG_PARTIAL标志位,然而不是所有的协议都支持MSG_PARTIAL标志位。
这个函数用在连接的和无连接的套接字来接收数据,套接字通过参数s来指定。套接字的本地地址必须被知道,对于服务端程序,通常通过bind函数来显式的得到或通过accept、WSAAccept来隐式的得到。客户端段程序并不鼓励显示的帮定。对于客户端应用程序来说,套接字可以隐式的通过WSAConnect、sendto、WSASendTo来绑定到本地地址。
为了连接面向连接的套接字,这个函数限制地址为接收消息被接受的对端。函数仅仅返回来自连接指定的对端地址的消息。其他地址的消息将被丢弃。对于重叠套接字,WSARecv在应用指定的完成指定发生的是,用来将输入数据被放在一个或多个缓冲区中。如果操作没有立即完成,最终的完成状态通过完成程序返回或WSAGetOverlappedResult函数来返回。
如果lpOverlapped和lpCompletionRoutine是NULL,套接字字被作为一个非重叠套接字对待。对于非重叠套接字,阻塞语义与标准的recv函数相同并且lpOverlapped和lpCompletionRoutine被忽略。任何被传输层已经接收并缓存的数据将被拷贝到用户缓冲区。对于阻塞套接字,当前传输层中没有接受并缓存数据,调用将被阻塞直到有数据被接收。WINSOCK对该函数没有定义阻塞益处机制。对于字节流的协议,

你可能感兴趣的:(网络)