- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
socket编程幻灯片
Socket编程 Socket编程 Socket简介 Windows Socket Winsock1.1基本API Winsock2.0 CAsyncSocket CSocket 什么是socket? 应用程序与网络之间的接口 应用程序创建socket socket 类型 决定了通信的类型 可靠的 vs. 尽最大努力的 面向连接的 vs. 无连接的 一旦socket配置完成,应用程序就可以 把数据传给socket,从而进行网络传输 从socket接收数据(其他主机通过网络发送过来的) Socket在计算机中提供了一个通信接口,可以通过这个接口与任何一个具有Socket接口的计算机通信。应用程序在网络上传输,接收的信息都通过这个Socket接口来实现。 Socket在协议栈中的位置 Socket到Socket的通信 Windows Socket(1) Windows Socket 是从 Berkeley Socket扩展而来的,其在继承 Berkeley Socket的基础上,又进行了新的扩充。这些扩充主要是提供了一些异步函数,并增加了符合Windows消息驱动特性的网络事件异步选择机制 Windows socket的版本 Winsock1.1 Winsock2.0 Windows Socket(2) Winsock的实现方式 Winsock: C-Based API, 与Unix C API类似 CAsyncSocket: 对Winsock API的简单C++封装 CSocket: 对Socket的高层抽象 (自动处理字节顺序转换等) 对象串行化 CSocketFile CArchive Windows Socket编程原理 端口 每个主机有65,536个端口 一些端口被预留,用于特定的应用程序 20,21: FTP 23: Telnet 80: HTTP 参考RFC 1700 (大约1024个端口被预留) 地址、端口和Socket 类似公寓和邮箱 你是应用程序 你的公寓地址是地址 你的邮箱是端口 邮局是网络 Socket是使你能够使用邮箱的钥匙(假设发出去的信是由你放入邮箱的) Q: 如何为Socket选择要连接的端口? Internet地址数据结构 sin_family = AF_INET 选择Internet地址族 字节顺序 解决方法:网络字节顺序 定义: 主机字节顺序: 主机使用的字节顺序 (大头或小头) Sun Solaris, PowerPC, ... 网络字节顺序:网络使用的字节顺序–大头 通过网络传输的任何信息都应该转化成网络字节顺序 ,接收后再转回主机字节顺序 Q: Socket是否自动完成字节顺序转换? 字节顺序转换函数 在主机字节顺序和网络字节顺序之间转换 ‘h’ = 主机字节顺序 ‘n’ = 网络字节顺序 ‘l’ = long (4 bytes), 转换IP地址 ‘s’ = short (2 bytes), 转换端口号 Socket的两种基本类型 SOCK_STREAM TCP 可靠传输 保证顺序 面向连接 双向 SOCK_DGRAM UDP 不可靠传输 无顺序保证 无“连接”概念 – 应用程序为每个包指定目的地 可以发送或接收 举例: web server 为了接收来自web client的连接请求,web server应做什么准备? 每个Winsock应用都必须加载Winsock DLL的相应版本 Web使用TCP, web server需要创建一个SOCK_STREAM套接字 把socket 绑定到一个特定端口 Socket I/O: listen() listen 表示 server准备接收连接请求 Socket I/O: accept() accept 等待一个连接请求 Socket I/O: accept() 建立连接 被动参与者 step 1: listen (监听连接请求) step 3: accept (接受连接请求) step 4: 数据传输 被接受的连接工作在新的Socket上 旧Socket继续监听其他的主动参与者 主动参与者 step 2: 请求并建立连接 step 4: 数据传输 Socket I/O: recv() recv 可以从一个socket接收数据。 TCP Client 举例: web client web client 如何连接到一个web server? 处理IP地址 IP地址通常表示为字符串 (“0”),但程序把IP地址作为整数来处理。 把域名转换成地址 gethostname 获得本地主机名 gethostbyname 为DNS提供接口,从主机名得到对应的主机地址。 gethostbyaddr – 由网络地址得到对应的主
您可能关注的文档
最近下载
- 【期货市场技术分析】完整版——约翰.墨菲.doc VIP
- 秋季养生ppt课件.pptx
- 2023年北京电影学院导演专业真题.docx
- 课程设计-基于systemview的2ask信号调制与解调 .pdf VIP
- 2023年北京电影学院部分专业历届校考真题汇编.pdf VIP
- 絮凝剂对MBR活性污泥理化性质的影响研究.pdf VIP
- 2026年高考作文素材积累之九三阅兵:这一刻,与祖国同频共振.docx VIP
- 2025年辽宁省初中学业水平考试英语模拟试卷试题(含答案).pdf VIP
- 2025年辽宁省大连市中考英语模拟试卷.docx VIP
- 2025年中考英语冲刺模拟试卷-辽宁地区-学生版.pdf VIP
文档评论(0)