Linux下万物皆文件
在了解了客户端和服务器的函数调用之后,我们只需要了解下文件操作就能编写出属于自己的客户端和服务器了,还能让他们进行通信。
这个内容其实是很简单的,所以博主就不再做过多的讲解
打开文件
#include<sys/types.h> #include<sys/stat.h> #include<fcntl.h> int open(const char *path, int flag); 第一个参数: const char *path: 文件名的字符串地址 第二个参数: int flag: 文件打开模式 返回值: 成功:返回文件描述符 失败:-1
下面是关于第二个参数 flag 可能的产量值即含义:
关闭文件
#include<unistd.h> int close(int fd); int fd: 需要关闭的文件或套接字的文件描述符 成功:0 失败:-1
将数据写入文件
#include<unistd.h> ssize_t write(int fd, const void *buf, size_t nbytes); 第一个参数 int fd 显示数据传输对象的文件描述符 第二个参数 const void *buf 保存要传输数据的缓冲地址值 第三个参数 size_t nbytes 要传数据的字节数
提示:
size_t 是通过 typedef 声明的 unsigned int 类型
ssize_t 就是 typedef 声明的 signed int
读取文件中的数据
与之前的 write 函数对应, read 用来接受数据
读取文件中的数据
#include<unistd.h> ssize_t read(int fd, void *buf, size_t nbyres); 第一个参数 int fd 显示数据接收对象的文件描述符 第二个参数 void *buf 保存接收数据的缓冲地址值 第三个参数 size_t nbytes 要接收数据的最大字节数 成功: 返回就收的字节数(但遇到文件结尾则返回0) 失败: -1
那么下面我们就可以来看看服务器端和客户端的代码了
客户端:
相信大家再看这些代码已经是毫无压力,所以我们的一个服务器端服务一个客户端的网络编程就到这里差不多结束了(最后讲完半关闭就可以进行完结了)