- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《实验19 socket相关程序设计》.pdf
Generated by Foxit PDF Creator © Foxit Software
For evaluation only.
1
实验十九 Socket 相关程序设计
一,实验目的
完成这个实验后,您将具有以下能力:
n 了解Socket 通信的基本原理
n 掌握Socket有关编程
二,基础知识
进行本实验前,您应具有:
n C 语言基础
n Linux 环境下vi 编译器的使用
n Makefile 的编写和使用
n Linux 下的程序编译与交叉编译过程
三,实验环境准备
为了完成本实验,以下硬件条件是必需的:
n UP-NETARM2410-S 嵌入式实验平台
n PC 机Pentium500 以上,硬盘40G 以上,内存128M 以上
为了完成本实验,以下软件条件是必需的:
n PC 机操作系统RedHat Linux 9.0
n ARM-LINUX 开发环境
四,情景描述
使用C语言编程、Makefile文件实现一个Socket程序的调用。
五,基本原理
1,进程通信简介
进程通信的概念最初来源于单机系统。由于每个进程都在自己的地址范围内运行,为保
证两个相互通信的进程之间既互不干扰又协调一致工作,操作系统为进程通信提供了相应设
施,如UNIX BSD 中的管道(pipe )、命名管道(named pipe )和软中断信号(signal ),UNIX
system V 的消息(message )、共享存储区(shared memory)和信号量(semaphore)等,但都
仅限于用在本机进程之间通信。
随着网络的发展,需要解决网络间不同主机进程间互相通讯的问题。为此首先要解决网
络上不同进程的标识问题。在同一主机上进程之间采用唯一的进程号(process ID )来标识
不同的进程,但是对于网络上的不同主机可以用相同的进程号来表示完全没有任何关系的两
个进程。同时,操作系统支持的网络协议众多,不同协议的工作方式不同,地址格式也不同 。
Generated by Foxit PDF Creator © Foxit Software
For evaluation only.
2
为了解决上面的问题,TCP/IP 协议中引入了端口、地址的概念:
端口
网络中可以被命名和寻址的通信端口,是操作系统可分配的一种资源。似于文件描述符,
每个端口都拥有一个叫端口号(port number )的整数型标识符,用于区别不同端口。由于
TCP/IP 传输层的两个协议 TCP 和UDP 是完全独立的两个软件模块,因此各自的端口号也
相互独立,如TCP 有一个255 号端口,UDP 也可以有一个255 号端口,二者并不冲突。
地址
在网络中不同的主机通过不同的网络设备相连,要使两个进程可以通信,大体上需要下
面三级寻址:
l 某一主机可与多个网络相连,必须指定一特定网络地址
l 网络上每一台主机应有其唯一的地址
l 每一主机上的每一进程应有在该主机上的唯一标识符
2 ,关于Socket 简介
Socket 是一种普遍的进程间通信的通道,也是基于文件描述符这种方式来表示。
Socket通信方式如图19.1所示,具体解释请见之后的实验说明部分:
图19.1
六,估计完成实验需要时间:60 分钟
文档评论(0)