摘要:
在 4.2 BSD UNIX® 操作系统中首次引入,Sockets API 现在是任何操作系统的标准特性。事实上,很难找到一种不支持 Sockets API 的现代语言。该 API 相当简单,但新的开发人员仍然会遇到一些常见的隐患。 本文识别那些隐患并向您显示如何避开它们。 隐患 1.忽略返回状态 阅读全文
posted @ 2017-03-04 17:31
小 楼 一 夜 听 春 雨
阅读(689)
评论(0)
推荐(0)
摘要:
socket缓冲区 每个 socket 被创建后,都会分配两个缓冲区,输入缓冲区和输出缓冲区。write()/send() 并不立即向网络中传输数据,而是先将数据写入缓冲区中,再由TCP协议将数据从缓冲区发送到目标机器。一旦将数据写入到缓冲区,函数就可以成功返回,不管它们有没有到达目标机器,也不管它 阅读全文
posted @ 2017-03-04 17:27
小 楼 一 夜 听 春 雨
阅读(9597)
评论(0)
推荐(1)
摘要:
一旦,我们建立好了tcp连接之后,我们就可以把得到的fd当作文件描述符来使用。由此网络程序里最基本的函数就是read和write函数了。ssize_t write(int fd, const void*buf,size_t nbytes);write函数将buf中的nbytes字节内容写入文件描述符 阅读全文
posted @ 2017-03-04 17:25
小 楼 一 夜 听 春 雨
阅读(16827)
评论(0)
推荐(5)
摘要:
几个重要的结论: 1. read总是在接收缓冲区有数据时立即返回,而不是等到给定的read buffer填满时返回。 只有当receive buffer为空时,blocking模式才会等待,而nonblock模式下会立即返回-1(errno = EAGAIN或EWOULDBLOCK) 2. bloc 阅读全文
posted @ 2017-03-04 16:30
小 楼 一 夜 听 春 雨
阅读(3662)
评论(0)
推荐(1)

浙公网安备 33010602011771号