基于 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


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


目录
相关文章
|
26天前
|
安全 Linux 网络安全
Nipper 3.9.0 for Windows & Linux - 网络设备漏洞评估
Nipper 3.9.0 for Windows & Linux - 网络设备漏洞评估
64 0
Nipper 3.9.0 for Windows & Linux - 网络设备漏洞评估
|
2月前
|
运维 Linux 开发者
Linux系统中使用Python的ping3库进行网络连通性测试
以上步骤展示了如何利用 Python 的 `ping3` 库来检测网络连通性,并且提供了基本错误处理方法以确保程序能够优雅地处理各种意外情形。通过简洁明快、易读易懂、实操性强等特点使得该方法非常适合开发者或系统管理员快速集成至自动化工具链之内进行日常运维任务之需求满足。
155 18
|
2月前
|
网络协议 关系型数据库 Linux
【App Service Linux】在Linux App Service中安装 tcpdump 并抓取网络包
在App Service for Linux环境中,无法像Windows一样直接使用网络排查工具抓包。本文介绍了如何通过TCPDUMP在Linux环境下抓取网络包,包括SSH进入容器、安装tcpdump、执行抓包命令及下载分析文件的完整操作步骤。
156 5
|
3月前
|
Web App开发 网络协议 Linux
【Linux】网络基础
TCP/IP五层模型是网络通信的基础框架,将复杂的数据传输过程分为物理层、数据链路层、网络层、传输层和应用层,每层各司其职,协同完成远程通信。该模型确保了不同设备和网络之间的互联互通,是现代互联网运行的核心机制。
211 5
|
3月前
|
网络协议 Linux 开发者
深入Linux中UDP网络通信机制编程探索
以上步骤概述了Linux中UDP网络通信的编程机制。在实现时,因关注细节和上下文环境可能有所调整,但大致流程是一致的。这些知识片段旨在帮助开发者快速上手Linux下的UDP编程,并提供可靠的信息作为编程的基础。在编程实践中,应结合实际业务需求,设计合适的数据传输协议,确保数据的正确性和实时性。
78 0
|
5月前
|
安全 网络协议 Linux
Linux网络应用层协议展示:HTTP与HTTPS
此外,必须注意,从HTTP迁移到HTTPS是一项重要且必要的任务,因为这不仅关乎用户信息的安全,也有利于你的网站评级和粉丝的信心。在网络世界中,信息的安全就是一切,选择HTTPS,让您的网站更加安全,使您的用户满意,也使您感到满意。
161 18
|
5月前
|
Linux 数据安全/隐私保护
使用Linux命令行接入无线网络Wi-Fi的示例。
现在,你已经使用命令行成功地连接到 Wi-Fi 网络了。这两个示例涵盖了用 `nmcli` 和 `wpa_supplicant` 连接无线网络的常见场景,让你能够不依赖图形化界面来完成这个任务。在日常使用中熟练掌握这些基本操作能增强你对 Linux 系统的理解,帮助你更有效地处理各种问题。
302 12
|
11月前
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
391 2
|
5月前
|
安全 Ubuntu Linux
Nipper 3.8.0 for Windows & Linux - 网络设备漏洞评估
Nipper 3.8.0 for Windows & Linux - 网络设备漏洞评估
172 0
Nipper 3.8.0 for Windows & Linux - 网络设备漏洞评估
|
7月前
|
Ubuntu Linux
Linux系统管理:服务器时间与网络时间同步技巧。
以上就是在Linux服务器上设置时间同步的方式。然而,要正确运用这些知识,需要理解其背后的工作原理:服务器根据网络中的其他机器的时间进行校对,逐步地精确自己的系统时间,就像一只犹豫不决的啮齿动物,通过观察其他啮齿动物的行为,逐渐确定自己的行为逻辑,既简单,又有趣。最后希望这个过程既能给你带来乐趣,也能提高你作为系统管理员的专业素养。
1124 20

热门文章

最新文章