17.4.1 数据接收函数recv
来源:互联网 发布:java打包成jar供调用 编辑:程序博客网 时间:2024/05/21 09:49
17.4 数据的发送与接收 建立套接字并完成网络连接以后,可以把信息传送到远程主机上,这个过程就是信息的发送。对于远程主机发送来的信息,本地主机需要进行接收处理。本节将讲述这种面向连接的套接字信息发送与接收操作。 17.4.1 数据接收函数recv 函数recv可以接收远程主机发送来的数据,并把这些数据保存到一个数组中。该函数的使用方法如下所示。 MSG_OOB:接收以out-of-band送出的数据。 MSG_PEEK:返回来的数据并不会在系统内删除,如果再调用recv时会返回相同的数据内容。 MSG_WAITALL:强迫接收到len大小的数据后才能返回,除非有错误或信号产生。 recv函数如果接收到数据,会把这些数据保存在buf指针指向的内存中,然后返回接收到字符的个数。如果发生错误则会返回-1。函数可能发生 EBADF:参数s不是一个合法的socket。 在使用这个函数前,需要在程序的最前面包含下面的头文件。 回书目 上一节 下一节 原文链接:int recv(int s,void *buf,int len,unsigned int flags);
在参数列表中,s表示已经建立的socket,buf是一个指针,指向一个数组,接收到的数据会保存到这个数组上,len表示数组的长度,可以用sizeof函数来取得,flags一般设置为0,其他可能的赋值与含义如下所示。
MSG_NOSIGNAL:此操作被SIGPIPE信号中断。
下面这些错误,可以用errno来捕获错误。
EFAULT:参数中的指针指向了无法读取的内存空间。
ENOTSOCK:参数s是文件描述词,而不是一个socket。
EINTR:被信号中断。
EAGAIN:此动作会阻断进程,但参数s的socket不可阻断。
ENOBUFS:系统的缓冲内存不足。
ENOMEM:核心内存不足
EINVAL:参数不正确。 #include <sys/types.h>
#include <sys/socket.h>
- 17.4.1 数据接收函数recv
- 接收数据 recv
- linux接收函数recv
- recv(经socket接收数据)
- 16.3.2 接收网络数据recv()
- recv, recvfrom, recvmsg用于接收数据
- recv函数接收数据问题(诡异)--调试正确,全速出错
- 关于recv函数只能接受一次数据
- recv函数
- recv函数
- recv函数
- recv函数
- ZigBee_数据接收函数解析
- recv接收问题,急急急急
- WSAAsynSelect()模型 FD_READ事件中recv()接收数据的返回值讨论
- socket tcp使用recv接收数据时,返回errno错误代码88
- 数据接受函数的使用场合 gets fgets recv*
- send函数 & recv函数
- 在Ubuntu8.04上安装监控系统
- java 对象 copy ObjectCopyUtils
- 解决Windows7下PHPnow安装Apache权限不够问题
- 杂项
- 三峡建后对地区气候的影响
- 17.4.1 数据接收函数recv
- HBase技术简介
- 分析Linux中Spinlock在ARM及X86平台上的实现
- 中国式管理 曾仕强 笔记
- rank,dense_rank,row_number
- Linux之父炮轰C++是糟糕程序员的垃圾语言
- CListCtrl的用法
- 421 4.7.1 : (DNS:NR) 退信报错
- android VelocityTracker类