linux五个网络编程模型,Linux_网络编程模型和实现.pdf

Linux 网络编程模型和实现

 一 . 什么是 socket ?

 二 . 为什么要学习 socket 编程 ?

 三 . socket 编程中的套接字。

 四 . 网络协议与套接口。

 五 . 编写一个 socket 程序的基本步骤。

 六 . 其它注意事项。

 七 . 简单演示程序。

一 . 什么是 socket

 socket 是一种特殊的 IO, 也是一种文件描述符。一个完整的

socket 都有一个相关描述:[协议,本地地址,本地端口,远程

地址,远程端口]。每一个 socket 都有一个本地的唯一一个

socket 号,由操作系统自动分配。

 socket 最早起源于 Unix ,即套接字,一系列在网络中用来通信的

socket 接口就称为套接字接口。它在组网领域的首次使用是在

1970 年 2 月 12 日发布的文献 IETF RFC33 中被发现的,根据美国

计算机历史博物馆的记载,文献中写到:“命名空间的元素都可称

为套接字接口。一个套接字接口构成一个连接的一端,而一个连接

可完全由一对套接字接口规定。” [编外:最早的 windows1.0 系统发布于 1985 年

5 月]

 socket 的基本操作模式是“ open—write/read—close” 。

二 . 为什么要学习 socket 编程

1. Internet 资源信息共享、网络进程通信几乎用的

全都是 socket.

2. socket( 套接字 ) 接口是独立于具体协议的网络

编程接口 , 它是 TCP/IP 、 UDP 网络的 API ,它

定义了许多函数或例程,程序员可以用它们来开

发 TCP/IP 、 UDP 网络上的应用程序。

3. socket( 套接字 ) 是通过标准的 UNI 文件描述符

和其它程序通讯的一个方法,目前已经被广泛移

植到各个平台。

三 . socket 编程中的套接字类型

套接字的三种类型 :

1. 流式套接字 (SOCK_STREAM)

流式的套接字可以提供可靠的、面向连接的通讯流。它使用了 TCP 协议。 TCP 保证了数据

传输的正确性和顺序性。

2. 数据报套接字 (SOCK_DGRAM)

数据报套接字定义了一种无连接的服务 , 数据报套接字定义了一种无连接的服务 ,

互独立的报文进行传输 , 是无序的 , 并且不保证数据的完整性与可靠性。使用

UDP 协议。

3. 原始套接字

原始套接字允许对低层协议如 IP 或 ICMP 直接访问 , 要用于新的网络协议实现的测

试等。

套接字所在层次示意图

Application program

Stream Datagram

Raw

Socket Socket

Socket

Interface Interface

Interface

TCP UDP

IP

Physical and data link layers

四 . 网络套接口

1. 网络模型:

应用层

表示层 应用层 telnet 、 ftp

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值