3.8.1.网络通信概述 3.8.1.1.从进程间通信说起:网络域套接字socket,网络通信其实就是位于网络中不同主机上面的2个进程之间的通信. 3.8.1.2.网络通信的层次 (1)硬件部分:网卡 (2)操作系统底层:网卡驱动 (3)操作系统API:socket接口 (4)应用层:低级(直接基于socket接口编程) (5)应用层:高级(基于网络通信应用框架库) (6)应用层:更高级(http.网络控件等) 3.8.1.3.本部分学习方法 (1)重点1:掌握网络通信的架构层次和基本原理 (2…
转自 http://www.cnblogs.com/MyLove-Summer/p/5215287.html Linux下的网络编程指的是socket套接字编程,入门比较简单. 1. socket套接字介绍 socket机制其实就是包括socket, bind, listen, connect, accept等函数的方法,其通过指定的函数实现不同的协议(IP4,IP6等)的数据在不同层之间的传输和获取等处理.其实个人理解socket就是处于应用层和TCP/IP协议之间的一个中间层,具体的数据分析…
网络基础 协议的概念 什么是协议 从应用的角度出发,协议可理解为"规则",是数据传输和数据的解释的规则. 假设,A.B双方欲传输文件.规定: 第一次,传输文件名,接收方接收到文件名,应答OK给传输方: 第二次,发送文件的尺寸,接收方接收到该数据再次应答一个OK: 第三次,传输文件内容.同样,接收方接收数据完成后应答OK表示文件内容接收成功. 由此,无论A.B之间传递何种文件,都是通过三次数据传输来完成.A.B之间形成了一个最简单的数据传输规则.双方都按此规则发送.接收数据.A.B之间达…
TCP协议提供的是一种可靠的,复杂的,面向连接的数据流(SOCK_STREAM)传输服务,它通过三段式握手过程建立连接.TCP有一种"重传确认"机制,即接收端收到数据后要发出一个肯定确认的信号,发送端如果收到接收端肯定确认的信号,就会继续发送其他的数据,如果没有,它就会重新发送. 而UDP协议是一种无连接的,不可靠的数据报(SOCK_DGRAM)传输服务.使用UDP套接口不用建立连接,服务端在调用socket()生成一个套接字并调用bind()绑定端口后就可以进行通信(recvfrom…
                                                                             信号实现进程间的通信 3.5.1.什么是信号 3.5.1.1.信号是内容受限(只是一个int型的数字)的一种异步通信机制 (1)信号的目的:用来通信(进程与进程之间的通信) (2)信号是异步的(对比硬件中断),信号好像就是一种软件中断. (3)信号本质上是int型数字编号(事先定义好的) 3.5.1.2.信号由谁发出 (1)用户在终端按下按键…
Linux下的网络编程指的是socket套接字编程,入门比较简单.在学校里学过一些皮毛,平时就是自学玩,没有见识过真正的socket编程大程序,比较遗憾.总感觉每次看的时候都有收获,但是每次看完了之后,过段时间不看,重新拾起这些知识的时候又要从头开始,所以,在这里做个笔记也算是做个模板,以后可以直接从某一个阶段开始接着玩... 1. socket套接字介绍 socket机制其实就是包括socket, bind, listen, connect, accept等函数的方法,其通过指定的函数实现不同…
IO复用是Linux中的IO模型之一,IO复用就是进程预先告诉内核需要监视的IO条件,使得内核一旦发现进程指定的一个或多个IO条件就绪,就通过进程进程处理,从而不会在单个IO上阻塞了.Linux中,提供了select.poll.epoll三种接口函数来实现IO复用. 1.select函数 #include <sys/select.h> #include <sys/time.h> int select(int nfds, fd_set *readfds, fd_set *writef…
[深入浅出Linux网络编程]是一个连载博客,内容源于本人的工作经验,旨在给读者提供靠谱高效的学习途径,不必在零散的互联网资源中浪费精力,快速的掌握Linux网络编程. 连载包含4篇,会陆续编写发出,欢迎持续关注,分别如下: 1,开篇 -- 知其然,知其所以然 2,基础 -- 事件触发机制 3,实践 -- TCP & UDP 4,应用 -- 基于轮子造汽车 该连载博客假设读者对Linux网络编程充满了学习兴趣,并且清楚的明白学习Linux网络编程能够解决什么问题,从而可以将博客重点放在内容本身,…
一.网络通信简介   第一部分内容,暂时没法描述,内容实在太多,待后续专门的系列文章.   二.linux网络通信     在linux中继承了Unix下“一切皆文件”的思想, 在linux中要实现网络通信需要创建相关的网络文件:linux中 用相关的系统调用创建相关的网络文件.   1.网络服务器实现(基于TCP/IP)     要实现一个网络服务器,则按照以下步骤完成 (1)创建网络套接字文件     socket( )系统调用用来创建网络套接字.其原型如下: NAME socket - c…
一.linux下TCP网络编程基础,需要了解相关函数 Socket():用于套接字初始化. Bind():将 socket 与本机上的一个端口绑定,就可以在该端口监听服务请求. Listen():使socket处于被动的监听模式,并为该  socket  建立一个输入数据队列,将到达的服务器, 请求保存在此队列中,直到程序处理他们. Accept():让服务器接收客户的连接请求. Connect():客户端使用connect函数来配置 socket并与远端服务器建立一个 TCP 连接. Clos…