电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

WINSOCK编程基础.ppt

44页
  • 卖家[上传人]:资****亨
  • 文档编号:127758666
  • 上传时间:2020-04-05
  • 文档格式:PPT
  • 文档大小:334.50KB
  • / 44 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、2020 4 5 1 第2章WINSOCK编程基础与木马原理 2 1winsock概述2 2WINSOCK控件2 3winsock控件的基本应用2 4木马原理实验安排 2020 4 5 2 教学目的 了解windowssocket熟练掌握winsock控件的属性 方法 事件熟练使用winsock控件进行实际应用程序的开发了解木马原理 2020 4 5 3 2 1winsock概述 Socket 套接字 最初是由加利福尼亚大学Berkeley 伯克利 分校为UNIX操作系统开发的网络通信接口 随着UNIX的广泛使用 Socket成为当前最流行的网络通信应用程序接口之一 Winsock是微软公司所提供的一套开放式网络程序设计接口 程序设计人员可以通过WinsockAPI的各项功能调用 设计出一套在Window操作系统下符合运行标准的网络应用程序VB编写网络程序主要有两种方式 1 winsockAPI2 winsock控件 2020 4 5 4 比较 WinSock控件优点 使用简单 工作量小 缺点 功能少 使用IP协议 仅支持TCP UDP协议 需要WinSock控件 系统默认安装不带MS

      2、WINSCK OCX文件 适合于初学者WinSockAPI优点 功能强大 支持多种协议 使用灵活 WinSockAPI调用的wsock32 dll 28K 或ws2 32 dll 69K 为Windows系统自带函数库不必担心缺少文件 缺点 使用复杂 编程量大 需要一定基础适合于要求较高的网络程序 2020 4 5 5 2 2WINSOCK控件 2 2 1概述2 2 2WinSock的属性2 2 3WinSock的方法2 2 4WinSock的事件2 2 5简单的通信例程 2020 4 5 6 2 2 1概述 利用套接字控件可以与远程计算机建立连接 并通过用户数据文报协议 UDP 或者传输控制协议 TCP 进行数据交换 这两种协议都可以用来创建客户与服务器应用程序 添加Winsock控件 部件 MicrosoftWinsockControl6 o 2020 4 5 7 2 2 2WinSock控件的属性 1 本地机器1 LocalHostName属性返回本地机器名 在设计时是只读的 而且是不可用的 语法object LocalHostName string2 LocalIP属性返回本地

      3、机器的IP地址 格式是IP地址加点字符串 xxx xxx xxx xxx 在设计时是只读的 而且是不可用的 语法object LocalIP string 2020 4 5 8 2 2 2WinSock控件的属性 3 LocalPort属性返回或者设置所用到的本地主机的通信端口 在设计时是可读 写的 而且是可用的 对客户来说 该属性指定发送数据的本地端口 在建立起连接之后 这就是用于TCP连接的本地端口 对于服务器来说 这是用于侦听的本地端口 语法object LocalPort long 0 端口 65535 2020 4 5 9 2 2 2WinSock控件的属性 2 通信协议 Protocol属性返回或设置Winsock控件所使用的协议 或者是TCP 或者是UDP 语法object Protocol protocol protocol的设置值是 sckTCPProtocol 0 缺省的 TCP协议 sckUDPProtocol 1 UDP协议 说明在能够重新设置属性之前必须 用Close方法 关闭控件 2020 4 5 10 2 2 2WinSock控件的属性 3 远程主机1 R

      4、emoteHost属性返回或设置远程计算机名 控件向它发送数据或从它那里接收数据 既可提供主机名 比如 也可提供点格式下的IP地址字符串 比如 100 0 1 1 语法object RemoteHost stringString 远程计算机的名称或地址 2020 4 5 11 2 2 2WinSock控件的属性 2 RemoteHostIP属性返回远程机器的IP地址 语法object RemoteHostIP3 RemotePort属性返回或设置要连接的远程计算机的通信端口号语法object RemotePort long 0 端口 65535 Object 对象表达式 其值是 应用于 列表中的对象 Port 要连接的端口 该属性的缺省值是80 2020 4 5 12 2 2 2WinSock控件的属性 4 State属性返回控件的状态 用枚举类型来表示 在设计时是只读的 而且是不可用的 2020 4 5 13 2 2 3WinSock控件的方法 1 指定本地IP和端口 Bind方法用Bind方法可以把一个端口号固定为本控件使用 使得别的应用程序不能再使用这个端口 如果有多协议适配卡

      5、就用这个方法 语法object BindLocalPort LocalIPLocalPort 用来建立连接的端口 LocalIP 用来建立连接的本地Internet地址 2020 4 5 14 2 2 3WinSock控件的方法 2 连接 Connect方法 客户端 用于向远程计算机发出连接请求object Connect remoteHost remotePort remoteHost 要连接的远程计算机的名字remotePort 要连接的远程计算机的端口号3 侦听 Listen方法 服务器端 创建套接字并将其设置为侦听模式 该方法仅适用于TCP连接 object Listen 2020 4 5 15 4 接受新连接 Accept方法 服务器 仅适用于TCP服务器应用程序 在处理ConnectionRequest事件时用这个方法接受新连接 object AcceptrequestID5 关闭连接 Close方法对客户机和服务器应用程序关闭TCP连接或侦听套接字 object Close 2 2 3WinSock控件的方法 2020 4 5 16 6 发送数据 SendData方法将数

      6、据发送给远程计算机 语法object SendDatadataObject 对象表达式 其值是 应用于 列表中的对象 Data 要发送的数据 对于二进制数据应使用字节数组 2 2 3WinSock控件的方法 2020 4 5 17 7 获取数据1 GetData方法获取当前的数据块并将其存储在变体类型的变量中 object GetDatadata type maxLen Data 在方法成功返回之后存储获取数据的地方 如果对请求的类型没有足够可用的数据 则将data设置成Empty Type 可选的 获取的数据类型 maxLen 可选的 在接收到字节数组或字符串时所需大小 2 2 3WinSock控件的方法 2020 4 5 18 type的设置值是 2020 4 5 19 2 2 3WinSock控件的方法 2 PeekData方法和GetData方法类似 但PeekData在取得数据后并不把缓冲区清空 该方法仅适用于TCP连接 语法object PeekDatadata type maxLen 2020 4 5 20 2 2 4WinSock控件的事件 1 关闭连接 建立连接1 C

      7、onnect事件 客户端 连接建立好可以进行通信时触发 当一个Connect操作完成时发生 语法object Connect object 所在处代表一个对象表达式 其值是一个Winsock控件 2020 4 5 21 2 2 4WinSock控件的事件 1 关闭连接 建立连接2 Close事件当远程计算机关闭连接时出现 应用程序应正确使用Close方法关闭TCP连接 语法object Close 2020 4 5 22 2 2 4WinSock控件的事件 2 请求连接 ConnectionRequest事件 服务器端 当远程计算机请求连接时出现 仅适用于TCP服务器应用程序 在请求一个新连接时激活该事件 语法object ConnectionRequest requestIDAsLong requestID 新连接请求标识 应把此参数传递给第二个控件示例上的Accept方法 2020 4 5 23 2 2 4WinSock控件的事件 3 发送数据过程1 SendProgress事件在发送数据期间出现 object SendProgress bytesSentAsLong bytesR

      8、emainingAsLong bytesSent 从上次激活事件以来已发送的字节数 bytesRemaining 在发送缓冲区等待发送时的字节数 2020 4 5 24 2 2 4WinSock控件的事件 3 发送数据过程2 SendComplete事件在完成一个发送操作时出现 语法object SendComplete 2020 4 5 25 2 2 4WinSock控件的事件 4 接收到新数据 DataArrival事件当新数据到达时出现 object DataArrival bytesTotalAsLong bytesTotal Long 可获取的数据总数量 说明如果没有获取一个GetData调用中的全部数据 则事件不会出现 只有存在新数据时才激活事件 2020 4 5 26 到底选择哪一种协议 通常是由需要创建的应用程序决定的 下面的几个问题将有助于选择适宜的协议 在收发数据的时候 应用程序是否需要得到客户端或者服务器的确认信息 如果需要 使用TCP协议 在收发数据之前先建立明确的连接 数据量是否特别大 例如图象与声音文件 在连接建立之后 TCP协议将维护连接并确保数据的完整性

      9、 不过 这种连接需要更多的计算资源 因而是比较 昂贵 的 2020 4 5 27 Winsock TCP基础 数据传输协议允许创建和维护与远程计算机的连接 连接两台计算机就可彼此进行数据传输 如果创建客户应用程序 就必须知道服务器计算机名或者IP地址 RemoteHost属性 还要知道进行 侦听 的端口 RemotePort属性 然后调用Connect方法 2020 4 5 28 Winsock TCP基础 如果创建服务器应用程序 就应设置一个收听端口 LocalPort属性 并调用Listen方法 当客户计算机需要连接时就会发生ConnectionRequest事件 为了完成连接 可调用ConnectionRequest事件内的Accept方法 建立连接后 任何一方计算机都可以收发数据 为了发送数据 可调用SendData方法 当接收数据时会发生DataArrival事件 调用DataArrival事件内的GetData方法就可获取数据 2020 4 5 29 Winsock UDP基础 用户数据文报协议 UDP 是一个无连接协议 跟TCP的操作不同 计算机并不建立连接 另外UDP应

      10、用程序可以是客户机 也可以是服务器 为了传输数据 首先要设置客户计算机的LocalPort属性 然后 服务器计算机只需将RemoteHost设置为客户计算机的Internet地址 并将RemotePort属性设置为跟客户计算机的LocalPort属性相同的端口 并调用SendData方法来着手发送信息 于是 客户计算机使用DataArrival事件内的GetData方法来获取已发送的信息 2020 4 5 30 2 2 5简单的通信例程 1 局域网内互相传递文本信息 简单聊天室程序 服务器与客户端不分开 2020 4 5 31 2 3winsock控件的基本使用 2 3 1获得本机的IP地址 主机名称2 3 2一对一通信 简单聊天程序 2 3 3同时连接多个客户端 2020 4 5 32 2 3 1获得本机的IP地址 主机名称 程序设计界面 代码 PrivateSubForm Load Label1 Caption 本机名称为 Winsock1 LocalHostNameLabel2 Caption 本机IP为 Winsock1 LocalIPEndSub 运行界面 2020 4 5

      《WINSOCK编程基础.ppt》由会员资****亨分享,可在线阅读,更多相关《WINSOCK编程基础.ppt》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结 2022年家长会心得体会集合15篇
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.