第10单元 网络IPC套接字
Linux系统编程第10单元 网络IPC套接字
第10单元 网络IPC套接字
网络编程基本概念 10.1 套接字描述符 10.2 寻址 10.3 BSD Socket网络通信编程 10.4 面向连接的网络通信实例 10.5 无连接的网络通信实例 10.6 基于并发服务器的网络数据传输
OSI模型及TCP/IP协议模式应用层 表示层 会话层 传输层 网络层 数据链路层 网络接口层 物理层 传输层 网络层 应用层
TCP/IP体系结构及各层协议各种应用层协议 http ftp smtp telnet dns snmp fns TCP IP ICMP ARP 网络接口层 UDP OSPF RARP IP地址: 逻辑上唯一的标识一台主机 MAC地址: 物理上唯一的标识一台主机 端口: 在主机内唯一标识应用程序
IP地址和端口
IP地址: 标识主机,IPv4—32位,IPv6—128位
端口: 标识某主机上的某个应用进程,16位无符号整数。 一台主机可以通过多个端口提供多个服务 分类: 公认口(well-known port):系统保留,0-1023 动态端口:进程使用需申请。
在全局标识一个应用进程 协议,本地IP,本地端口号
标识一个完整的网间通信 协议,本地IP,本地端口号,远地IP,远地端口号
网络数据包封包与拆包过程主机A:应用程序1 应用层包头 DATA 应用层 主机B:应用程序2 应用层包头 DATA
传输层包头 应用层包头
DATA
传输层
传输层包头 应用层包头
DATA
IP层包头 传输层包头 应用层包头
DATA
IP层
IP层包头 传输层包头 应用层包头
DATA
链路层包头 IP层包头 传输层包头 应用层包头
DATA
包尾
链路层
链路层包头 IP层包头 传输层包头 应用层包头
DATA
包尾
字节顺序
大于一个字节的类型的数据在内存中的存放顺序 Little-Endian 小端,低位字节在内存低地址端,高位字节在内存高地址端。 处理器架构:Intel x86 Big-Endian 大端,高位字节在内存低地址端,低位字节在内存高地址端。 处理器架构:Sun SPARC,Java Virtual Machine
主机/网络字节顺序
主机字节顺序 两种都有可能,所以不同字节顺序的主机之间发送信
息容易出错。 在此特指IP地址和端口
网络字节顺序 TCP/IP协议使用Big-Endian
转换函数。 主机to网络:htonl 网络to主机:ntohl l:32位,s:16位
htons ntohs
参数为原数,返回值为转换后的数。8
套接字类型
流式套接字 基于TCP协议,面向连接,可靠
数据报套接字 基于UDP协议,无连接,不可靠
原始套接字 超级用户使用,对网络下层通信协议进行访问
TCP套接字通信过程
TCP套接字通信过程
服务器先启动 调用socket函数创建一个套接字s。 调用bind函数将s绑定一
个地址和端口号。 调用listen函数使s成为一个监听套接字。 调用accept阻塞等待接收客户端请求,建立与某客户 端的连接套接字ns。 通过ns,调用读写函数处理某客户端请求 终止连接ns。 客户端 调用socket函数创建一个套接字s1。 填写服务器的地址和端口号。 调用connect函数与服务器建立连接。 调用读写函数与服务器发送或接收数据。 终止连接s1。
UDP套接字通信过程
UDP套接字通信过程
服务器 调用socket函数创建一个套接字s。 调用bind函数将s绑定一个地址和端口号。 等待并接收客户端请求。 调用读写函数处理客户端请求
关闭套接字。
客户端 调用socket函数创建一个套接字s1。 调用读写函数发送或接收数据给服务器。 关闭套接字。
准备工作分别创建文件makefile,server.c和client.c。 server.c和client.c先写出main函数结构。 makefile文件内容见右: 测试make命令和 all:server client server:server.c make clean命令
gcc $^ -o $@ client:client.c gcc $^ -o $@ clean: rm server client -f14
socket
#include <sys/socket.h> int socket (int family, int type, int protocol); 功能:创建套接字。 参数::程序所在主机采用的通信协议,AF_INET( IPv4),AF_INET6(IPv6)。 type:要建立的套接字类型:SOCK_STREAM(流式 ), SOCK_DGRAM(数据报), SOCK_RAW(原 始)。 protocol::一般为0,除原始套接字外。 family
返回值:成功:套接字描述符,失败:-1。15
server.c——socket#include <sys/socket.h> ------------------------------------------------------- //变量定义部分 int sockfd; ------------------------------------------------------- //代码部分 sockfd=socket(AF_INET,SOCK_STREAM,0); if(sockfd==-1) { perror("socket"); exit(1);} 16
…… 此处隐藏:583字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [初中教育]婚姻家庭法学教学教案
- [初中教育]浅谈小学语文教学中的创新教育
- [初中教育]中华人民共和国侵权责任法2009
- [初中教育]2016-2022年中国薄膜太阳能电池行业发
- [初中教育]多级轻型井点降水的应用
- [初中教育]外语教学法流派介绍和简评
- [初中教育]实验一、典型环节及其阶跃响应
- [初中教育]内蒙古2012-2013学年度国家奖学金获奖
- [初中教育]移动通信营销渠道管理探讨
- [初中教育]初三化学第一学期第一第二章基础知识点
- [初中教育]一天的食物教学设计
- [初中教育]光导照明系统的基本结构及工作原理
- [初中教育]长春市十一高、东北师范大学附属中学、
- [初中教育]“十三五”规划重点-配重式装卸车项目
- [初中教育]领导方法和领导艺术
- [初中教育]第三章 植物病虫草鼠害诊断与防治基
- [初中教育]2019届九年级语文上册 第二单元 6纪念
- [初中教育]甲级单位编制水豆腐项目可行性报告(立
- [初中教育]Ch8-1补充 09101数据库系统原理及应用-
- [初中教育]2017-2023年中国吊装设备行业市场分析
- 制作毕业纪念册需要哪些材料
- 2015-2016学年高二化学苏教版选修4课件
- 哈佛管理导师-创建商业案例
- 职场交际中的谈吐礼仪知识与职场会议接
- 中国糕点及面包行业发展现状与竞争战略
- 沂河“12·7”洪水茶山拦河坝
- 管道水流量计算公式
- 4-2发电机火灾事故处置方案
- 数字信号处理实验五
- 2009年经济师(中级)金融专业知识全真试
- 历史街区保护规划--04历史文化遗产保护
- 宁夏回族自治区中小学职称评价标准
- 评先评优测评表
- 圆的切线证明及线段长求解在在中考中的
- 【解析版】2015年江苏省南京外国语学校
- 人教版八年级上册科学第一章习题精华
- 责任心与执行力
- SA8000社会责任管理体系标准培训
- IgA肾病的饮食应注意
- 杭州市建设工程文件归档整理方案(试行)




