`
mmdev
  • 浏览: 12917122 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

Linux socket 完整的读写函数

 
阅读更多
写函数write
ssize_t write(int fd,const void *buf,size_t nbytes)

write函数将buf中的nbytes字节内容写入文件描述符fd.成功时返回写的字节数.失败时返回-1. 并设置errno变量.
在网络程序中,当我们向套接字文件描述符写时有俩种可能.

1)write的返回值大于0,表示写了部分或者是全部的数据.

2)返回的值小于0,此时出现了错误.我们要根据错误类型来处理.

如果错误为EINTR表示在写的时候出现了中断错误.
如果为EPIPE表示网络连接出现了问题(对方已经关闭了连接).
为了处理以上的情况,我们自己编写一个写函数来处理这几种情况.



读函数read
ssize_t read(int fd,void *buf,size_t nbyte) read函数是负责从fd中读取内容.当读成功时,
read返回实际所读的字节数,如果返回的值是0 表示已经读到文件的结束了,小于0表示出现了错误.
如果错误为EINTR说明读是由中断引起的,
如果是ECONNREST表示网络连接出了问题. 和上面一样,我们也写一个自己的读函数.


分享到:
评论

相关推荐

    linux网络编程

    37POSIX线程(一) POSIX线程库相关函数 用线程实现回射客户/服务器 38POSIX线程(二) 线程属性 线程特定数据 39POSIX信号量与互斥锁 POSIX信号量相关函数 POSIX互斥锁相关函数 生产者消费者问题 自旋锁与读写锁...

    linux 下socket通信中select的用法实例

    可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如connect、accept、recv或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等待某个事件的发生,...

    linux C语言编程,socket实现的即使通讯系统_百度知道1

    (1)通过socket()函数创建socket (2)通过bind函数绑定socket于设备地址 (3)进行读写操作read/recv/recvfrom wri

    GZU+CS学院+Linux期末题目+题目分析和代码

    2.Linux平台下利用系统接口函数按照行读写文件; 3.Linux平台下利用系统接口函数实现从磁盘读入文件内容,显示文件内容并发送到消息队列,从消息队列读入内容并写入文件。 4.在linux平台下查询任意文件的信息,并...

    Linux网络编程 视频 教程

    Linux网络编程之socket编程篇 Linux网络编程之进程间通信篇 Linux网络编程之线程篇 Linux网络编程之TCP/IP基础篇 01TCPIP基础(一) ISO/OSI参考模型 TCP/IP四层模型 基本概念(对等通信、封装、分用、端口)...

    详解Linux Socket编程(不限Linux)

    还有socket的基本函数,这些都是本文想介绍的。本文的主要内容如下: 1、网络中进程之间如何通信? 本地的进程间通信(IPC)有很多种方式,但可以总结为下面4类: 消息传递(管道、FIFO、消息队列) 同步(互斥量...

    C++教程网《Linux网络编程》视频百度云地址

    Linux网络编程之socket编程篇 Linux网络编程之进程间通信篇 Linux网络编程之线程篇 Linux网络编程之TCP/IP基础篇 01TCPIP基础(一) ISO/OSI参考模型 TCP/IP四层模型 基本概念(对等通信、封装、分用、端口)...

    c++教程网的linux网络编程视频下载

    Linux网络编程之socket编程篇 Linux网络编程之进程间通信篇 Linux网络编程之线程篇 Linux网络编程之TCP/IP基础篇 01TCPIP基础(一) ISO/OSI参考模型 TCP/IP四层模型 基本概念(对等通信、封装、分用、端口)...

    2018年C++教程网的linux网络编程视频共41集百度云下载链接.rar

    Linux网络编程之socket编程篇 Linux网络编程之进程间通信篇 Linux网络编程之线程篇 Linux网络编程之TCP/IP基础篇 01TCPIP基础(一) ISO/OSI参考模型 TCP/IP四层模型 基本概念(对等通信、封装、分用、端口) 02...

    [免费]2018年C++教程网的linux网络编程视频百度云下载链接.rar

    Linux网络编程之socket编程篇 Linux网络编程之进程间通信篇 Linux网络编程之线程篇 Linux网络编程之TCP/IP基础篇 01TCPIP基础(一) ISO/OSI参考模型 TCP/IP四层模型 基本概念(对等通信、封装、分用、端口)...

    Linux高性能服务器编程

    5.1.4 IP地址转换函数 5.2 创建socket 5.3 命名socket 5.4 监听socket 5.5 接受连接 5.6 发起连接 5.7 关闭连接 5.8 数据读写 5.8.1 TCP数据读写 5.8.2 UDP数据读写 5.8.3 通用数据读写函数 5.9 带外...

    C++教程网视频:linux网络编程

    Linux网络编程之socket编程篇 Linux网络编程之进程间通信篇 Linux网络编程之线程篇 Linux网络编程之TCP/IP基础篇 01TCPIP基础(一) ISO/OSI参考模型 TCP/IP四层模型 基本概念(对等通信、封装、分用、端口)...

    Socket简介及使用

    socket起源于Unix,而Unix/Linux基本哲学之一就是“一切皆文件”,都可以用“打开open –> 读写write/read –> 关闭close”模式来操作。我的理解就是Socket就是该模式的一个实现,socket即是一种特殊的文件,一些...

    linux入门编程例子大全

    文件读写、管道、信号量、消息队列、线程/进程、互斥锁、socket通信……等29个案例,还有自己曾经用过的暗文密码(即输入密码时显示*,或者不显示也可以,类似我们在linux下su root时输入密码那样),外加《linux c...

    LInux 平台下物联网网关(多线程实现),嵌入式项目

    应用于物联网嵌入式项目 包括参数数据解析、协议转换、Socket...为了实现多线程,使用了Linux提供的pthread库,它提供了创建和管理线程的函数和数据结构。互斥锁和条件变量用于确保线程之间的同步和互斥访问共享资源。

    linux programming instances网络编程教程 附源代码

    9.3.2 读写锁的操作函数 9.4 记录上锁 9.4.1 记录上锁的基本原理 9.4.2 fcntl记录上锁 9.4.3 记录上锁应用举例 9.5 本章小结 第10章 多路复用和信号驱动i/0 10.1 多路复用 10.1.1 多路复用的基本原理...

    深入分析Linux内核源码

    4.8.3 自旋锁、读写自旋锁和大读者自旋锁 4.9 本章小节 第五章进程调度 5.1 Linux时间系统 5.1.1 时钟硬件 5.1.2 时钟运作机制 5.1.3 Linux时间基准 5.1.4 Linux的时间系统 5.2 时钟中断 5.2.1 时钟...

    linux驱动开发流程

    ◇ 设备的读写操作。 ◇ 设备的控制操作。 ◇ 设备的中断和轮询处理。 Linux主要将设备分为三类:字符设备、块设备和网络设备。字符设备是指发送和接收数据以字符的形式进行,没有缓冲区的设备;块设备是指发送和...

    Linux网络编程.doc

    网络程序通过socket和其它几个函数的调用,会返回一个 通讯的文件描述符,我们可以将这个描述符看成普通的文件的描述符来操作,这就是linux的设备无关性的 好处.我们可以通过向描述符读写操作实现网络之间的数据交流.

    Linux网络编程超级详细笔记

    网络程序通过socket和其它几个函数的调用,会返回一个 通讯的文件描述符,我们可以将这个描述符看成普通的文件的描述符来操作,这就是linux的设备无关性的好处.我们可以通过向描述符读写操作实现网络之间的数据交流.

Global site tag (gtag.js) - Google Analytics