网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > VC++ > 正文
用Visual C++ 4.0 实现Windows 95 Socket编程
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/15
下载{$ArticleTitle}原创论文样式

作者: 李 大 琪

  Windows 95 Socket 提 供 了 在 Microsoft Windows 95 中 进 行 网 络 程 序 设 计 的 一 个 接 口, 它 是 在 Unix Socket 的 基 础 上 发 展 而 来 的, 不 仅 保 留 了Unix Socket 原 有 的 风 格, 而 且 还 融 入 了 适 合 于 Windows 95 的 新 特 点, 这 使 得 用 户 可 以 利 用 Windows 95 Socket API 直 接 进 行 进 程 与 应 用 程 序 间 的 通 信。Windows 95 在Internet 支 配 域 中 的TCP/IP 协 议 定 义 了 Socket 编 写 规 程, 使 用 Socket 的 目 的 是 使 用 户 在 网 络 协 议 上 工 作 而 不 必 对 该 网 络 协 议 有 非 常 深 入 的 了 解。 此 外, 这 样 编 写 的 程 序 可 被 迅 速 移 植 到 任 何 支 持 Socket 的 网 络 系 统 中 去。

  Microsoft Windows Class Library( MFC ) 中 提 供 了 CSocket 类 用 来 实 现 网 络 通 信。 图 一 中 给 出 了CSocket 类 的 继 承 关 系。

   下 面 将 介 绍 用Visual C++ 4.0 在Windows 95 中 实 现 Socket 的 CSocket 类 相 关 成 员 函 数( 这 些 成 员 函 数 实 际 上 是 从CAsyncSocket 类 继 承 来 的 )。

  (1) BOOL Create( UINT nSocketPort = 0, int nSocketType = SOCK_STREAM, long lEvent = FD_READ |FD_WRITE|FD_OOB|FD_ACCEPT|FD_CONNECT| FD_CLOSE,LPCTSTR lpszSocketAddress = NULL )

   该 函 数 用 来 建 立Socket。 其 中,nSocketPort 为 所 选 择 的 Socket 端 口, 一 般 要 大 于 1023, 如 果 该 参 数 为 0, 则 由 系 统 选 定 一 端 口, 默 认 值 为 0 ;nSocketType 为 套 接 字 类 型 :SOCK_STREAM 表 示 为 流 套 接 字, SOCK_DGRAM 表 示 为 数 据 报 套 接 字, 默 认 值 为 SOCK_STREAM ;lEvent 标 识 该 Socket 要 完 成 哪 种 工 作, 默 认 值 为FD_READ|FD_WRITE|FD_OOB| FD_ACCEPT|FD_CONNECT|FD_CLOSE ;lpszSockAddress 为 网 络 地 址 信 息 结 构 指 针, 包 含 网 络 地 址 , 默 认 值 为 NULL 。

  (2)BOOL Bind( UINT nSocketPort, LPCTSTR lpszSocketAddress = NULL )

   该 函 数 的 作 用 是 将Socket 端 口 与 网 络 地 址 连 接 起 来。 参 数 含 义 同 上 。

  (3)BOOL Listen( int nConnectionBacklog = 5 )

   该 函 数 的 作 用 是 等 待Socket 请 求。 其 中,nConnec-tionBacklog 表 示 等 待 队 列 的 长 度, 默 认 值 为 最 大 值 5 。

  (4)virtual BOOL Accept( CAsyncSocket& rConnectedSocket, SOCKADDR* lpSockAddr = NULL, int* lpSockAddrLen = NULL )

   该 函 数 的 作 用 是 取 得 队 列 上 第 一 个 连 接 请 求 并 建 立 一 个 具 有 与Socket 相 同 特 性 的 套 接 字。 其 中,rConnectedSocket 表 示 一 个 新 的 Socket 。

  (5)BOOL Connect( LPCTSTR lpszHostAddress, UINT nHostPort )

   该 函 数 的 作 用 是 提 出 请 求。 其 中,lpszHostAddress 和 nHostPort 为 接 受 请 求 进 程 的 网 络 地 址 和 Socket 端 口 号 。

  (6)virtual void Close( )

   该 函 数 的 作 用 是 关 闭 该 Socket 。

   利 用 CSocket 类 直 接 进 行 数 据 通 信 有 两 种 方 式 : 一 种 是 利 用 CSocketFile 类 和 Archive 类 去 实 现, 另 一 种 是 利 用 CSocket 的 成 员 函 数 Receive、Send、ReceiveFrom、SendTo、Listen 和 Accept 等 来 实 现( 这 些 成 员 函 数 实 际 上 也 是 从CAsyncSocket 类 继 承 的)。

   两 种 方 法 的 实 现 步 骤 如 下 :

  Server : Construct-> Creat-> Bind -> Listen-> Accept-> Send->Close ;

  Cile

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号