基于 Linux 的文件操作 网络编程的最后一环

简介: Linux下万物皆文件在了解了客户端和服务器的函数调用之后,我们只需要了解下文件操作就能编写出属于自己的客户端和服务器了,还能让他们进行通信。

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 可能的产量值即含义:

20191103100444272.png

关闭文件

#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
  那么下面我们就可以来看看服务器端和客户端的代码了

20191103103309872.png

20191103103407177.png

客户端:

20191103103501429.png


相信大家再看这些代码已经是毫无压力,所以我们的一个服务器端服务一个客户端的网络编程就到这里差不多结束了(最后讲完半关闭就可以进行完结了)


目录
相关文章
|
2月前
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
107 2
|
4月前
|
安全 Linux 网络安全
Web安全-Linux网络协议
Web安全-Linux网络协议
89 4
|
15天前
|
Ubuntu Linux 开发者
Ubuntu20.04搭建嵌入式linux网络加载内核、设备树和根文件系统
使用上述U-Boot命令配置并启动嵌入式设备。如果配置正确,设备将通过TFTP加载内核和设备树,并通过NFS挂载根文件系统。
60 15
|
20天前
|
Ubuntu Unix Linux
Linux网络文件系统NFS:配置与管理指南
NFS 是 Linux 系统中常用的网络文件系统协议,通过配置和管理 NFS,可以实现跨网络的文件共享。本文详细介绍了 NFS 的安装、配置、管理和常见问题的解决方法,希望对您的工作有所帮助。通过正确配置和优化 NFS,可以显著提高文件共享的效率和安全性。
145 7
|
2月前
|
运维 监控 网络协议
运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面
本文介绍了运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面,旨在帮助读者提高工作效率。从基本的文件查看与编辑,到高级的网络配置与安全管理,这些命令是运维工作中的必备工具。
214 3
|
3月前
|
运维 监控 网络协议
|
3月前
|
Ubuntu Linux 虚拟化
Linux虚拟机网络配置
【10月更文挑战第25天】在 Linux 虚拟机中,网络配置是实现虚拟机与外部网络通信的关键步骤。本文介绍了四种常见的网络配置方式:桥接模式、NAT 模式、仅主机模式和自定义网络模式,每种模式都详细说明了其原理和配置步骤。通过这些配置,用户可以根据实际需求选择合适的网络模式,确保虚拟机能够顺利地进行网络通信。
141 1
|
3月前
|
网络协议 安全 Ubuntu
Linux中网络连接问题
【10月更文挑战第3天】
46 1
|
4月前
|
人工智能 监控 Shell
常用的 55 个 Linux Shell 脚本(包括基础案例、文件操作、实用工具、图形化、sed、gawk)
这篇文章提供了55个常用的Linux Shell脚本实例,涵盖基础案例、文件操作、实用工具、图形化界面及sed、gawk的使用。
871 2
|
3月前
|
JSON Dart 数据格式
flutter:文件操作与网络请求 (十五)
本文介绍了 Dart 语言中文件操作与网络请求的相关知识,包括 Future 的使用、异步请求的处理以及 async 和 await 的应用。通过示例代码展示了如何实现延时操作、处理网络请求及解析 JSON 数据。