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

   下 面 我 就 用 Visual C++ 4.0 的 代 码 段 分 别 介 绍 如 何 运 用 上 述 两 种 方 法 来 实 现Socket 编 程。

  1、 利 用 CSocketFile 类 和 Archive 类 实 现

  (1)Server

  // construct a socket

  CSocket sockSrvr;

  // create the SOCKET

  sockSrvr.Create(nPort);

  // start listening

  sockSrvr.Listen( );

  //construct a new, empty socket

  CSocket sockRecv;

  // accept connection

  sockSrvr.Accept( sockRecv );

  // construct file object

  CSocketFile file(&sockRecv);

  // construct an archive

  CArchive arIn(&file, CArchive::load);

  /*or*/_CArchive arOut(&file, CArchive::store);

  // use the archive to pass data

  arIn >> dwValue;

  /*or*/ arOut << dwValue;

  (2)Client

  // construct a socket

  CSocket sockClient;

  // create the SOCKET

  sockClient.Create( );

  // seek a connection

  sockClient.Connect(strAddr, nPort);

  // construct file object

  CSocketFile file(&sockClient);

  // construct an archive

  CArchive arIn(&file, CArchive::load);

  /*or*/_CArchive arOut(&file, CArchive::store);

  // use the archive to pass data

  arOut << dwValue;

  /*or*/ arIn >> dwValue;

   上 述 为 Client/Server 模 式 的 两 个 进 程, 用 于 完 成 两 个 进 程 间 一 个 数 据 变 量 的 通 信。 其 中, nPort 是Socket 的 端 口 号,strAddr 是 该 机 器 的IP 地 址( 如 202.197.1.3 或 FTP://RedAlert.com 等), 这 两 个 变 量 在Server 和Client 中 要 一 致。 当Server 进 程 运 行 至 Listen 后 便 处 于 睡 眠 状 态 直 到 Client 进 程 执 行 Connect 时 才 被 唤 醒, 而 后 两 个 进 程 便 开 始 传 输 数 据 了。

  2、 利 用 CSocket 的 成 员 函 数 实 现

  (1)Server

  // Socket initial

  if(!AfxSocketInit()){

   MessageBox("WindowsSocket initial

   failed!","Send",MB_ICONSTOP);

   Return;

  }

  // Construct two socket

  CSocket ChatSend,server;

  // Creat a SOCKET

  if(!ChatSend.Create(nPort)) // nPort=1025

   MessageBox("SendSocket create failed!", "Send",MB_ICONSTOP);

  else{

   // Associates a local address with the socket ChatSend.Bind(nProt,strAddr);

  // strAddr="202.196.111.1"

   // Start Listening

   ChatSend.Listen();

   // Creat a new socket and accepts a connection on

   //the socket

   ChatSend.Accept(Server);

  }

  // Send a CString

  Server.SendTo(csSendText,csCounts,nPort,strAddr);

  // Close the two socket

  Server.Close();

  ChatSend.Close();

  (2)Client

  // Socket initial

  if(!AfxSocketInit()){

   MessageBox("WindowsSocket initial failed!", "Receive",MB_ICONSTOP);

   return;

  }

  // Construct a socket

  CSocket ChatRecieve;

  // Creat a SOCKET

  if(!ChatReceive.Create()){

   MessageBox("ReceiveSocket create

   failed!","Receive",MB_ICONSTOP);

   return;

  }

  else{

   // Establishes a connection

网学推荐

免费论文

原创论文

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