有关socket read
- - 五四陈科学院以下内容由 [五四陈科学院]提供. 实际开发中,网络程序最可能遇到的就是数据没收到、收到错误数据这样诡异的问题.. 很多时候,都是由于对socket read的细节理解的不一致,导致了程序前后的矛盾. 下面详细阐述整个read的过程. read函数是负责从fd中读取内容.. 当读成功时, read返回实际所读的字节数.
ssize_t read(int fd,void *buf,size_t nbyte)
如果返回的值是0 表示已经读到文件的结束了,小于0表示出现了错误。
可以同时检查errno:
SocketChannel sc = (SocketChannel) sk.channel(); int i = sc.read(buff)
static int unix_stream_recvmsg(struct kiocb iocb, struct socket sock,
struct msghdr *msg, size_t size, int flags)