文档详情

Linux_网络编程模型和实现.pdf

发布:2017-09-22约字共22页下载文档
文本预览下载声明
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
显示全部
相似文档