Win32程序设计之网络通信

原创 2001年08月24日 09:00:00
Win32程序设计之网络通信
5/31/2001 11:58:24· ·QQ新人类编译··yesky

1 2 3 4 5 6 7  下一页


  这篇文章将会介绍现有的Win32函数支持的网络通信功能,并且展示了如何在你自己的应用中使用它们。在API中,有两个支持网络通信的便利方法:mailslot和命名管道(name pipes)。这篇文章将分别讨论它们,并且分别介绍它们的优缺点。

  因为Win32 API直接支持网络通信,因此要创建各种使用网络的应用是特别简单的。例如,你要在你的网络中建立一个多用户会议系统,与BBS的“CB”类似。在这个系统中,用户在各自的机器上运行一个会议系统程序,他们所打的全部信息都会广播给同一网络的所有其他用户。通常这种系统可使用mailslots实现,因为mailslots很容易广播信息。事实上,多人的网络游戏使用的也是类似的技术。

  当你要在两部机器间传送大量的数据流时,你通常使用点对点的命名管道连接。例如,你会使用命名管道来实现一个网络数字电话或者视频系统。客户/服务器也都是使用命名管道的。其中的一个中央机器会作为服务器端,然后其它所有的客户端就可使用命名管道与它分别进行连接。

  网络基础

  为了进行更好地理解下面的例子,懂得一些网络的基本知识是很有必要的。下面的图展示了一个小型公司中常见的简单网络。每台机器都使用一个网络适配器连接到网络中,并且都拥有一个唯一的名字来标识它。网络适配器决定了网络的类型,常见的有以太网或者令牌网。适配器还决定了网络使用的媒体,可以是同轴线、双绞线等。要知道的一点是,在这样的简单网络中,所有的机器都可以平等地与其它的机器进行通信。

jt-2001-5-28-3.gif

*******************图一*************************

  通过传统的Win32 API函数在机器间通信有两种方法。一种是mailslot,一个机器可以广播一个信息,网络中的其它所有机器都可以接收到。使用命名管道的话,一部机器选择另一部进行通信,并且与它建立一个特别的连接。命名管道的好处是连接可靠。如果连接打断的话,例如一块网卡或者网线出现故障,连接的两端都可以马上接收到连接断开的信息。mailslots是不可靠的,因为发送者无法确认接收者是否已经收到了信息。mailslot的好处是它可以很容易地同时给许多机器发信息。

  上面的图展示的是一个网段。一个网段的定义是直接互相连接的一组机器。一个网段中的机器数目是受到限制的,因为当机器的数量增加时,网络的通信量也会增大。通常的限制是大约为100台机器。在一个大的公司中,每个网段大约包括有20到30台机器。所有的网段之间可以通过路由器进行连接,这样它们之间就可以进行通信,如下图所示。了解到这种差别是重要的,因为通常一个mailslot信息只能在一个网段中传送,而命名管道的信息可以经过路由器传送到另一个网段中。

jt-2001-5-28-4.gif

******************图二***********************

  使用mailslots和命名管道来进行网络通信,有三种不同的通信方式:广播、点对点和客户/服务器方式。将mailslot应用在广播模式时,一台机器发送信息到网段上的其它所有机器上。在点对点通信时,一台机器与另一台建立一个特别的连接,数据可以通过命名管道在它们之间往复传送。在一个客户/服务器的关系中,一台机器作为服务器,所有机器通过点对点的命名管道来与它进行连接。如果要使用客户/服务器的方式来模拟一个广播的操作,可以通过一台机器发送一个信息到服务器,然后服务器就可以将信息的副本分别发到每个客户端。

1 2 3 4 5 6 7  下一页

Win32 网络编程

1.socket socket的英文原义是“孔”或“插座”。作为4BDS UNIX的进程通信机制,取后一种意思。通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄。socket非常类似...
  • ch_jinyi
  • ch_jinyi
  • 2012年04月09日 10:10
  • 4724

Win32下的录音编程

1      引言在Win32 APIs基础上编写录音程序繁琐易错,使用封装好的类是个不错的注意。不幸的是所谓封装好的类对你而言,往往是代码罗嗦且功能不足,因此尽管你可能希望在某个项目上因使用封装好的...
  • enginetanmary
  • enginetanmary
  • 2007年07月27日 10:24
  • 967

Win32输入法编程技术的分析研究

作者:新疆大学 巴力登 陆莲芳 【摘要】本文论述了Win32输入法编程技术的基本原理、技术要点及其实现的方法. 并分析研究了基于IMM-IME结构的输入法的构成、接口、设计方法与核心技术问题...
  • gjt19910817
  • gjt19910817
  • 2012年01月31日 17:18
  • 2916

Win32多线程程序设计

Win32多线程程序设计”多线程多任务“是程序开发者和用户都需要的一个重要资产。从WindowsNT开始,完全支持32位程序的抢占式多任务。带领我们进入了”多线程多任务“时代。基本概念 进程(pro...
  • chenjintaoxp
  • chenjintaoxp
  • 2015年07月31日 16:04
  • 1261

Windows程序设计(1)——Win32运行原理(二)

创建进程 1 进程和线程 2 应用程序的启动过程 3 CreateProcess函数 4 实例3 创建进程3.1 进程和线程进程通常被定义为一个存在运行的程序的实例。进程是一个正在运行的程序,它拥有自...
  • himayan46
  • himayan46
  • 2016年08月03日 23:38
  • 790

windows下网络编程(三)——MFC CAsyncSocket 分析

一些网络的基本概念 1.       同步:指发送方发出数据后,等收到接收方发回的响应,才发下一个数据包的通信方式 2.       异步:指的是发送方不等接收方响应,便接着发下个数据包的通信...
  • caowei880123
  • caowei880123
  • 2012年12月13日 14:24
  • 1413

Android开发开源源代码

原文地址: http://blog.csdn.net/appandroid/article/details/9091521
  • SilenceRain7
  • SilenceRain7
  • 2014年10月14日 11:28
  • 632

《win32多线程程序设计》学习笔记一

一、win32基础  1、进程   1)、从win32角度来看,进程含有内存和资源。被进程拥有的资源,理论上可高达2GB。资源包括核心对象,UESR资源,GDI资源。   2)、进程本身并不能够...
  • Explorer_day
  • Explorer_day
  • 2017年03月07日 19:21
  • 326

正在学习《Windows程序设计》,补上SDK(Win32 API)编程这一课

最近在学习王艳平老师的《Windows程序设计》。 这本书确实是一本很不错的windows程序设计教程,刚好适合我这种中级水平的人。 (这里有下:http://download.csdn.net/...
  • booksyhay
  • booksyhay
  • 2013年07月24日 16:25
  • 1003

Winpcap

  • Xviewee
  • Xviewee
  • 2007年06月09日 13:37
  • 886
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Win32程序设计之网络通信
举报原因:
原因补充:

(最多只允许输入30个字)