写代码是一种艺术,甚于蒙娜丽莎的微笑!

不拼搏,枉少年!

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

随笔分类 -  Linux下的网络编程

该目录下的所有文章均来自网络资源,其中参考CSDN和博客园上看到有关“Linux下的网络编程的入门教程”,原作者已难以寻找,如果找到定注明参考出处。另,本系列文章仅供个人学习之用,不存在其它用途!
摘要:原文链接:进程与线程的一个简单解释 进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握。 最近,我读到一篇材料,发现有一个很好的类比,可以把它们解释地清晰易懂。 1. 计算机的核心是CPU,它承担了所有的计算任务。它就像一座工厂,时刻在运行。 2. 假定工 阅读全文
posted @ 2016-07-06 17:58 RunningSnail 阅读(669) 评论(0) 推荐(3) 编辑

摘要:同步和异步是两个非常的重要的概念,其应用范围也很广,例如进程的同步与异步,同步传输和异步传输等。对于这两个概念总是有些模糊不解的地方,一时也难以说清。所以就搜集了一些资料,并做了相关整理,深度剖析一下同步与异步机制。 进程的同步与异步 进程同步:在发出一个功能调用时,在没有得到结果之前,该调用就不能 阅读全文
posted @ 2016-06-11 15:47 RunningSnail 阅读(424) 评论(0) 推荐(0) 编辑

摘要:原创2016-04-15 老刘 码农翻身 前言 上帝为你关闭了一扇门,就一定会为你打开一扇窗这句话来形容我最合适不过了。我是CPU, 他们都叫我阿甘, 因为我和《阿甘正传》里的阿甘一样, 有点傻里傻气的。上帝把我制造出来, 给我了一个很小的脑容量, 为数不多的寄存器能临时的记一点东西, 但是上帝给我 阅读全文
posted @ 2016-05-19 16:18 RunningSnail 阅读(651) 评论(0) 推荐(0) 编辑

摘要:原创 2016-04-02 老刘 第一回 初生牛犊 我是一个线程,我一出生就被编了个号:0x3704,然后被领到一个昏暗的屋子里,在这里我发现了很多和我一模一样的同伴。 我身边的同伴0x6900 待的时间比较长,他带着沧桑的口气对我说:“我们线程的宿命就是处理包裹。把包裹处理完以后还得马上回到这里, 阅读全文
posted @ 2016-05-19 14:26 RunningSnail 阅读(540) 评论(0) 推荐(1) 编辑

摘要:一位大神的精华之作,原创2016-05-12 刘欣 来自码农翻身! 时间: 大明王朝天启四年, 清晨。 天色刚蒙蒙亮,我就赶着装满货物的马车来到了南城门,这里是集中处理货物的地方,一队一队的马车都来到这里, 城头的士兵带着头盔,身披盔甲,手持长枪,虎视眈眈的注视这下面的动静。 地点:城门口的大棚里乱 阅读全文
posted @ 2016-05-19 14:01 RunningSnail 阅读(306) 评论(0) 推荐(0) 编辑

摘要:原由 之所以写这篇文章当然还是在面试中涉及了对本文标题的相关问题-互斥锁和自旋锁的区别。听到这个问题的时候,我是比较忐忑的。互斥锁我还能简单说一些,但是对于自旋锁的了解几乎为零。为此,将总结Linux下的相关锁-那些“锁”事儿。知之为知之,不知为不知,是知也。不懂的地方,尽快查漏补缺! 简介 我们晓 阅读全文
posted @ 2016-04-28 14:46 RunningSnail 阅读(9263) 评论(0) 推荐(2) 编辑

摘要:旁白 今天面了下鹅场的后台技术开发,面试官问了我关于TCP连接协议的3次握手和断开连接协议的4次握手的问题。因为之前看过TCP的连接和断开处理,但是印象没有那么深刻。我想主要原因是一直重复简单的记忆,却没有深刻地理解。所以,在此将搜集一些这方面的资料整理一下,可以加深印象,同时也分享给有需要的博友。 阅读全文
posted @ 2016-04-25 21:25 RunningSnail 阅读(602) 评论(0) 推荐(2) 编辑

摘要:使用多线程的理由之一是和进程相比,它是一种非常"节俭"的多任务操作方式。在Linux系统下,启动一个新的进程必须分配给它独立的地址空间,建立众多的数据表来维护它的代码段、堆栈段和数据的,这是一种“昂贵”的多任务工作方式。而运行一个进程中的多个线程,它们彼此之间使用相同的地址空间,共享大部分数据。并且 阅读全文
posted @ 2016-03-13 21:47 RunningSnail 阅读(592) 评论(0) 推荐(0) 编辑

摘要:OSI模型是国际互连网标准化组织(International Standards Organizations ISO)所定义的,为了使网络的各个层次有标准。这个模型一般被称为“ISO OSI(Open System Interconnection)Reference Model”。 虽然迄今为止没有 阅读全文
posted @ 2016-03-10 22:12 RunningSnail 阅读(575) 评论(0) 推荐(0) 编辑

摘要:《计算机操作系统》这门课对进程有这样的描述:进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据 阅读全文
posted @ 2016-03-10 21:53 RunningSnail 阅读(14244) 评论(0) 推荐(3) 编辑

摘要:函数原型: int sockfd(AF_INET,SOCK_RAW,protocol); 可以创建一个原始套接字,根据协议的类型不同我们可以创建不同类型的原始套接字,比如:IPPROTO_ICMP,IPPROTO_TCP,IPPROTO_UDP等等。下面我们以一个实例来说明原始套接字的创建和使用: 阅读全文
posted @ 2016-03-07 21:55 RunningSnail 阅读(485) 评论(0) 推荐(0) 编辑

摘要:服务器设计技术有很多,按使用的协议来分有TCP服务器和UDP服务器,按处理方式来分有循环服务器和并发服务器。 在网络程序里面,一般来说都是许多客户对应一个服务器,为了处理客户的请求,对服务端的程序就提出了特殊的要求。 目前最常用的服务器模型有: UDP循环服务器每次从套接字上读取一个客户端的请求-> 阅读全文
posted @ 2016-03-07 21:48 RunningSnail 阅读(1051) 评论(0) 推荐(0) 编辑

摘要:1、定义: TCP/IP模型也被称作DoD模型(Department of Defense Model)。TCP/IP字面上代表了两个协议:TCP(传输控制协议)和IP(网际协议)。 TCP/IP协议不是TCP和IP这两个协议的合称,而是指因特网整个TCP/IP协议族。从协议分层模型方面来讲,TCP 阅读全文
posted @ 2016-03-07 21:12 RunningSnail 阅读(566) 评论(0) 推荐(0) 编辑

摘要:网络通信的高级函数 1、recv和send 函数原型: int recv(int sockfd,void *buf,int len,int flags); int send(int sockfd,void *buf,int len,int flags); 前面的三个参数和read、write一样,第 阅读全文
posted @ 2016-03-07 20:46 RunningSnail 阅读(418) 评论(0) 推荐(0) 编辑

摘要:1、UDP常用的发送和接收函数 sockfd,buf,len的意义和read,write中的参数是一样的,分别表示套接字描述符,发送或接收的缓冲区及大小。 recvfrom负责从sockfd接收数据,如果from不是NULL,那么在from里面存储了信息来源的情况,如果对信息的来源不感兴趣,可以将f 阅读全文
posted @ 2016-03-07 20:24 RunningSnail 阅读(459) 评论(0) 推荐(0) 编辑

摘要:1、写函数write 函数原型: write函数将buf中的nbytes字节内容写入文件描述符fd,成功时返回写的字节数,失败时返回-1。在网络程序中,向套接字文件描述符写时有两种情况: 1)write的返回值大于0,表示写了部分或者是全部数据。 2)返回值小于0,此时出现了错误,要根据错误类型来处 阅读全文
posted @ 2016-03-07 17:12 RunningSnail 阅读(376) 评论(0) 推荐(0) 编辑

摘要:1、字节转换函数 在网络上可能连接着许多类型不同的机器,这些机器在表示数据的字节顺序是不同的,比如i386芯片是低字节在内存地址的低端,高字节在高端,而alpha芯片却相反。为了统一起来,在linux下面,有专门的字节转换函数。 unsigned long int htonl(unsigned lo 阅读全文
posted @ 2016-03-07 16:17 RunningSnail 阅读(411) 评论(0) 推荐(0) 编辑

摘要:要点:Linux系统是通过套接字socket来进行网络编程的。网络程序通过socket和其它几个函数的调用,会返回一个通讯的文件描述符。我们可以将这个描述符看成普通文件的描述符来操作,这就是Linux的设备无关性的好处。通过向描述符进行读写操作可以实现网络之间的数据交流。 1、socket 函数原型 阅读全文
posted @ 2016-03-07 15:25 RunningSnail 阅读(360) 评论(0) 推荐(0) 编辑

摘要:1、客户端和服务端 网络程序和普通程序的一个最大区别是网络程序有两个部分组成即客户端和服务端。 客户端是在网络程序中和外界程序进行通信(获取文件)的程序,例如ftp程序就是客户端。 服务端和客户端程序相对应,是被动的等待外面的程序来和自己通信的程序。 互为客户端和服务端:在实际应用中有些程序是互为客 阅读全文
posted @ 2016-03-07 14:28 RunningSnail 阅读(396) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示