摘要: Socket编程很简单。因为不管用什么语言、什么环境编写,都是那几个固定的步骤。Socket可以通过TCP\IP和UDP两种方式实现。TCP\IP tcp建立连接要进行“三次握手”,即交换三个分组。大致流程如下:客户端向服务器发送一个SYN J服务器向客户端响应一个SYN K,并对SYN J进行确认ACK J+1客户端再想服务器发一个确认ACK K+1 当客户端调用connect时,触发了连接请求,向服务器发送了SYN J包,这时connect进入阻塞状态;服务器监听到连接请求,即收到SYN J包,调用accept函数接收请求向客户端发送SYN K ,ACK J+1,这时accept进入阻.. 阅读全文
posted @ 2012-03-27 17:28 陈朋 阅读(460) 评论(0) 推荐(0) 编辑
摘要: 这里曾遇到过O_TRUNC 这个参数,当时没看明白啥意思,后来弄了个例子,英文不好的桑不起啊。 int _open(char *pathname,int access)为读或写打开一个文件, 按后按access来确定是读文件还是写文件,access值见下表 ┌──────┬────────────────────┐ │access值 │意义 │ ├──────┼────────────────────┤ │O_RDONLY │读文件 │ │O_WRONLY │写文件 │ │O_RDWR │即读也写 │ │O_NOINHERIT │若文件没有... 阅读全文
posted @ 2012-03-27 16:59 陈朋 阅读(2750) 评论(0) 推荐(0) 编辑
摘要: linux文件IO操作可以分为两种:1.带缓存的文件IO操作,包括fopen, fclose, fread, fwrite, fgetc, fgets, fputc, fputs, freopen, fseek, ftell, rewind等2.不带缓存的文件IO操作,包括open, close, read, write, getc, getchar, putc, putchar 等两者的区别:1.带缓存的io操作是在标准C里面定义的(可移植),而不带缓存的io操作是POSIX中定义的(不可移植),属于系统调用。带缓存的实际上是在不带缓存的基础之上封装了一层,维护了一个输入输出缓冲区,使之能跨 阅读全文
posted @ 2012-03-27 16:56 陈朋 阅读(695) 评论(0) 推荐(0) 编辑