UNIX网络编程
文章平均质量分 64
caisam
好好学习,天天向上
展开
-
为什么要这样写:readn(),writen()?
这里就不贴代码了。代码来自《UNIX 网络编程》第一卷(3rd edition)P72,P73具体来看看为什么要这样写。对于readn()首先定义了两个size_t的变量:nleft表示还剩下的字节数;nread表示已经读取的字节数接着是一个字符型指针变量:ptr,指向读取的目标缓冲区(ptr = vptr)我们要读取的时n字节的数据,于是就先将赋值:nleft = n;(原创 2015-03-27 22:52:37 · 1551 阅读 · 0 评论 -
为什么这样写:readline()
这里就不贴代码了。代码来自《UNIX 网络编程》第一卷(3rd edition)P73,P75具体来看看为什么要这样写。这是两个函数:P73的readline() Version 1;P75的readline() Version 2。readline() Version 1P73代码都是普通的C语言代码,关键是作者这样写的思路是啥,为什么要这样写但是后来却把这个版本的代原创 2015-03-28 17:34:29 · 777 阅读 · 0 评论 -
TCP 回射服务器
TCP Reflect Server & ClientTCP回射服务器。学习了《UNP》的第五章前面的知识,自己把代码敲出来了,加深了理解吧。概述简单地说就是,Client发送给Server一条消息(一行文本),Server再将同样地消息发送回Client。就像这样:客户端用到的函数和API包括:1) socket API — 创建套接字,负责建立基本的原创 2015-03-28 21:12:08 · 673 阅读 · 0 评论 -
socket中的close和shutdown区别
很明显这个两个函数是有差别的。close关闭本进程的socket id,但链接还是开着的。怎么理解?我们知道socket描述符是对内核中socket对象的引用。而close操作的正式socket描述符,可以理解为断开了当前进程和内核中socket对象的关系。但是其他进程同样可以和这个socket对象建立关系。当然也就是说连接是开着的(因为其他进程可以通过socket读写数据)shutdown破坏了s转载 2015-04-05 22:15:00 · 3948 阅读 · 0 评论