• 网络学院
  • IT资讯
  • 操作系统
  • 网络技术
  • 软件应用
  • 办公软件
  • 编程技术
  • 网站架设
  • 数据库类
  • 平面设计
  • 多媒体类
  • 游戏资讯
  • 教学论文
  • 认证考试
利用WinSock进行有连接的通信
  站点:
  • 首 页
  • 最新软件
  • 文章教程
  • 国内软件
  • 国外软件
  • 绿色软件
  • 源码下载
  • 字体下载
利用WinSock进行有连接的通信
软件发布 利用WinSock进行有连接的通信
网络软件 系统工具 应用软件 联络聊天 图形图像 多媒体类 行业软件 游戏娱乐 编程开发 安全相关 教育教学 数码软件 绿软下载
热门软件: QQ 瑞星 pplive e话通 木马克星 千千静听 office2000 五笔字根 Photoshop 视频分割
返回文章教程首页 >> 编程技术 >> VC教程 >> 利用WinSock进行有连接的通信

利用WinSock进行有连接的通信

添加时间: 2006-2-11 0:15:55  作者: VC教程  阅读次数:149   来源: http://www.d9soft.com

       

  WinSock提供了对TCP(传输控制协议)的支持,通过TCP协议我们可以与指定IP地址的主机建立,同时利用建立的连接可以双向的交换数据。利用CSocket操纵有连接数据交换很简单,但是在有连接的通信中必需有一方扮演服务器的角色等待另一方(客户方)的连接请求,所以服务器方需要建立一个监听套接口,然后在此套接口上等待连接。当连接建立后会产生一个新的套接口用于通信。而客户方在创建套接口后只需要简单的调用连接函数就可以创建连接。对于有连接的通信不论是数据的发送还是发送与接收的顺序都是有保证的。双方的函数调用顺序如图。

  下面的代码演示了如何建立连接和发送/接收数据:

  /*

  服务器方在端口6802上等待连接,当连接建立后关闭监听套接口

  客户方向服务器端口6802发起连接请求

  */

  BOOL CMy63_s1_serverDlg::OnInitDialog()

  {

  CDialog::OnInitDialog();

  

  CSocket sockListen;

  file://创建本地套接口

  sockListen.Create(6802,SOCK_STREAM,"127.0.0.1");

  file://绑定参数

  sockListen.Bind(6802,"127.0.0.1");

  sockListen.Listen(5);

  file://等待连接请求,m_sockSend为成员变量,用于通信

  sockListen.Accept(m_sockSend);

  file://关闭监听套接口

  sockListen.Close();

  file://启动定时器,定时发送数据

  SetTimer(1,3000,NULL);

  ...

  }
  void CMy63_s1_serverDlg::OnTimer(UINT nIDEvent)

  {

  static iIndex=0;

  char szSend[20];

  sprintf(szSend,"%010d",iIndex++);

  file://发送TCP数据

  int iSend= m_sockSend.Send(szSend,10,0);

  ...

  }

  BOOL CMy63_s1_clientDlg::OnInitDialog()

  {

  CDialog::OnInitDialog();

  file://创建本地套接口

  m_sockRecv.Create();

  file://发起连接请求

  BOOL fC=m_sockRecv.Connect("127.0.0.1",6802);

  TRACE("connect is %s\n",(fC)?"OK":"Error");

  file://启动定时器,定时接收数据

  SetTimer(1,3000,NULL);

  ...

  }

  void CMy63_s1_clientDlg::OnTimer(UINT nIDEvent)

  {

  char szRecv[20];

  file://接收TCP数据

  int iRecv =m_sockRecv.Receive(szRecv,10,0);

  TRACE("received %d byte\n",iRecv);

  if(iRecv>=0)

  {

  szRecv[iRecv]='\0';

  m_szRecv=szRecv;

  UpdateData(FALSE);

  }

  ...

  }

  63_s1_client工程为客户,63_s1_server工程为服务器方。

 

上下文章:

 

上一篇文章: 用VC++实现2000/XP下的休眠 下一篇文章: VC的拨号上网程序

相关文章:

  • 《永恒之塔》继遭封杀之后又出现连接故障
  • 400多网站融资难 促进行业洗牌
  • 赛门铁克削减员工开支预算 将在全球进行裁员
  • 新蠕虫病毒利用微软高危漏洞发起大肆攻击
  • 将Windows操作系统无毒进行到底

相关软件:

  • 网络通信调试工具 V1.0
  • 易通VPN连接专家 1.0.0.5
  • LAN连接监视工具 1.0.0.1
  • 554端口连接控制 1.4
  • 语音通信控件 3.6 通用版
  • 黑客进行时 2004

 

快速导航

  • 网络学院
  • 精品汇聚
  • 字体下载
  • 教程下载
  • ASP源码
  • PHP源码
  • Net源码
  • JSP 源码

编程技术分类导航

  • ASP & ASP.NET教程
  • PHP教程
  • JSP教程
  • C/C++教程
  • VB & VB.NET教程
  • VC教程
  • Delphi教程
  • BCB教程
  • VFP教程
  • PB教程
  • JAVA教程
  • XML教程
  • C#教程
  • CGI教程

本类经典文章推荐

  • VC++之Button控件
  • VC++之Static Box控件
  • VC++之Edit Box控件
  • VC++之Static Box控件
  • VC++之Edit Box控件
  • VC++之Scroll Bar
  • VC++之Scroll Bar
  • VC++之List Box/Check List Box控...
  • VC++ Combo Box/Combo Box Ex控件
  • VC++ List Ctrl控件

VC教程阅读排行

  • VC++之List Box/Check List Box控...
  • VC++ List Ctrl控件
  • VC++ Combo Box/Combo Box Ex控件
  • VC++之Button控件
  • VC++之Tab Ctrl控件
  • VC++之Edit Box控件
  • VC++之Edit Box控件
  • VC遍历整个目录树查找文件
  • VC++之Scroll Bar
  • VC使用ActiveX控件常见问题

编程技术阅读总排行

  • VB入门教程之一
  • Java连接数据库实例
  • VC++之List Box/Check List Box控...
  • 第二章 PowerBuilder 入门之创建新...
  • VC++ List Ctrl控件
  • 第一章 什么是PowerBuilder
  • VC++ Combo Box/Combo Box Ex控件
  • 学C++不得不看的一篇文章
  • VB入门教程之二
  • VC++之Button控件

广告位置

字母检索 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 回到顶部

关于我们 | 版权声明 | 免责条款 | 广告联系 | 软件发布 | 下载帮助 | 下载排行 | 网站地图 | 特别鸣谢 | 友情连接

copyright; 2005-2008 D9soft.com 第九软件网 版权所有