| Win32程序设计之网络通信 |
| 这篇文章将会介绍现有的Win32函数支持的网络通信功能,并且展示了如何在你自己的应用中使用它们。在API中,有两个支持网络通信的便利方法:mailslot和命名管道(name pipes)。这篇文章将分别讨论它们,并且分别介绍它们的优缺点。 因为Win32 API直接支持网络通信,因此要创建各种使用网络的应用是特别简单的。例如,你要在你的网络中建立一个多用户会议系统,与BBS的“CB”类似。在这个系统中,用户在各自的机器上运行一个会议系统程序,他们所打的全部信息都会广播给同一网络的所有其他用户。通常这种系统可使用mailslots实现,因为mailslots很容易广播信息。事实上,多人的网络游戏使用的也是类似的技术。 当你要在两部机器间传送大量的数据流时,你通常使用点对点的命名管道连接。例如,你会使用命名管道来实现一个网络数字电话或者视频系统。客户/服务器也都是使用命名管道的。其中的一个中央机器会作为服务器端,然后其它所有的客户端就可使用命名管道与它分别进行连接。 网络基础 为了进行更好地理解下面的例子,懂得一些网络的基本知识是很有必要的。下面的图展示了一个小型公司中常见的简单网络。每台机器都使用一个网络适配器连接到网络中,并且都拥有一个唯一的名字来标识它。网络适配器决定了网络的类型,常见的有以太网或者令牌网。适配器还决定了网络使用的媒体,可以是同轴线、双绞线等。要知道的一点是,在这样的简单网络中,所有的机器都可以平等地与其它的机器进行通信。 ![]() *******************图一************************* 通过传统的Win32 API函数在机器间通信有两种方法。一种是mailslot,一个机器可以广播一个信息,网络中的其它所有机器都可以接收到。使用命名管道的话,一部机器选择另一部进行通信,并且与它建立一个特别的连接。命名管道的好处是连接可靠。如果连接打断的话,例如一块网卡或者网线出现故障,连接的两端都可以马上接收到连接断开的信息。mailslots是不可靠的,因为发送者无法确认接收者是否已经收到了信息。mailslot的好处是它可以很容易地同时给许多机器发信息。 上面的图展示的是一个网段。一个网段的定义是直接互相连接的一组机器。一个网段中的机器数目是受到限制的,因为当机器的数量增加时,网络的通信量也会增大。通常的限制是大约为100台机器。在一个大的公司中,每个网段大约包括有20到30台机器。所有的网段之间可以通过路由器进行连接,这样它们之间就可以进行通信,如下图所示。了解到这种差别是重要的,因为通常一个mailslot信息只能在一个网段中传送,而命名管道的信息可以经过路由器传送到另一个网段中。 ![]() ******************图二*********************** 使用mailslots和命名管道来进行网络通信,有三种不同的通信方式:广播、点对点和客户/服务器方式。将mailslot应用在广播模式时,一台机器发送信息到网段上的其它所有机器上。在点对点通信时,一台机器与另一台建立一个特别的连接,数据可以通过命名管道在它们之间往复传送。在一个客户/服务器的关系中,一台机器作为服务器,所有机器通过点对点的命名管道来与它进行连接。如果要使用客户/服务器的方式来模拟一个广播的操作,可以通过一台机器发送一个信息到服务器,然后服务器就可以将信息的副本分别发到每个客户端。 |
相关推荐
深入理解Win32 API的Windows程序设计指南
本文还有配套的精品资源,点击获取 简介:《Windows程序设计》是一本专注于Win32 API的中文第五版教程,以CHM格式呈现,便于离线阅读和检索。本书详细介绍了使用C语言基于Win32 API开发Windows应用程序的方法,涵盖了从窗口创建到系统交互的方方面面。书中阐述了API的基本概念,包括窗口管理、图形绘制、事件处理、文件操作、进程和线程管理、内存管理、错误处理...
基于STM32CubeMX创建的STM32H743+DP83848+LWIP网络通信程序调试_20221127算是胎教级教程了
基于STM32CubeMX软件,编写一个能够应用在STM32H743单片机上的网络通信程序调试,PHY芯片为DP83848,通信协议栈采用LWIP。
基于TCP的通信程序设计(C语言)
答辩通过后,进一步修改的,没有问题。若有疑问请联系我 1. 服务器端功能:接收客户连接请求,建立连接,显示客户IP地址和端口号,接收并显示客户发送的信息,并向该客户发送“I am a server. ”的信息。 2. 客户端功能:向服务器提出TCP请求,当连接建立后,向服务器发送“I am a client.”的信息,接收并显示从服务器收到的信息,并断开服务器的连接。
STM32单片机网络通信调试
STM32网络通信——硬件连接及测试
WIN32API串口通信编程实例教程
WORDBOOKCREATOR制作的电子书。详细的讲解串口通信编程的方法。所附代码均经VC6编译通过。
Starlink第三代终端和第二代终端的差异性有哪些?
starlink第三代终端和第二代终端的额差异
基于win32控制台的socket网络通信程序
我只是一个小白,自己第一次动手写的基于win32控制台的socket通信程序,同时程序代码也只适合与初学者,写的不好的地方也多多包涵(同时希望大佬多多指教),我也希望我分享的成果供给有需要的小白,希望能帮助到你们。 成果展示: 客户端核心代码: void chatClient() { //请求协议版本 WSADATA wsaData; WSAStartup(MAKEWORD(2, 2), &wsaData); if (LOBYTE(wsaD...
别再被SpringerLink虐了!手把手教你搞定LaTeX源文件提交(附正确文件顺序和类型选择)
本文详细解析了SpringerLink投稿系统中LaTeX源文件提交的常见问题与解决方案,包括文件打包、类型选择和顺序排列等关键步骤。通过实战经验,帮助科研人员避开隐形陷阱,一次性完成LaTeX提交,提升投稿效率。特别针对`.bst`和`.cls`文件的正确处理提供了专业指导。
TCP/IP网络编程项目式教程(微课版)
TCP/IP网络编程项目式教程(微课版)是由唐四薪编著、清华大学出版社于2019年11月出版的图书。 本书按照问题驱动、由浅入深的理念,以项目实例的形式介绍基于Visual C++的TCP/IP WinSock编程方法。 本书是微课版,提供了20个微课配套视频,在Visual Studio 2010环境中对书中的关键内容进行了演示和讲解,扫描书中相应位置的二维码即可观看。 TCP/IP网络...
安装Anaconda和Labelme的教程
1 登录Anaconda官网,选择Download https://www.anaconda.com/distribution/ 2 选择你想下载的Python版本,选择你的操作系统和位数,然后点击Download按钮就开始下载了 3 开始安装 下面两个框框都勾选 点击next,等待安装成功 打开Anaconda Navigator 点击红色圈圈的按钮 在cmd中输入 (1)创建虚拟环境 conda create -n labelme python=3.6 (2)激活虚拟环境 conda activa
运放偏置电路设计:如何精准计算差分放大器的电压偏移量
本文深入解析了差分放大器偏置电路的设计原理与精准计算方法,重点阐述了如何通过引入参考电压实现信号电压偏移,以适应单电源ADC的输入范围。文章结合实战案例,详细推导了偏移电压公式,并强调了电阻匹配、运放选型及PCB布局对精度和共模抑制比的关键影响,帮助硬件工程师避免常见设计陷阱。
Win32API学习笔记第三章
Windows32程序设计笔记第三篇
【GlobalMapper精品教程】027:路径剖面和和视线工具的使用
路径剖面视线工具允许您使用加载的高程数据集沿用户指定的路径获取垂直剖面。要定义生成3D路径剖面所遵循的路径,只需单击鼠标左键选择路径的点,然后石键单击以结束路径。出现一个带有剖面的对话框,允许您设置视线分析或优化端点。
Win32位程序设计初步之网络通信
http://www.yesky.com/SoftChannel/72342376189788160/20041108/1873154.shtml
9、工业数据管理:Historian、ERP、MES与资产模型解析
本文深入解析了工业数据管理中的核心概念与技术,包括Historian数据库、ERP和MES系统以及资产模型。文章详细介绍了Historian数据库的特性、架构分类、数据采集方式及时间序列处理能力,同时探讨了ERP和MES系统的功能与优势,特别是MES在生产执行中的重要作用。资产模型部分结合ISA-95和ISA-88标准,阐述了工业资产的层次化建模方法。此外,文章还分析了各系统之间的协同关系、面临的挑战及应对策略,并展望了未来工业数据管理的发展趋势,如云原生技术、人工智能融合和工业物联网的应用。
37、基于视觉的轻量级面部呼吸和心率测量技术
本文提出了一种基于视觉的轻量级面部呼吸和心率测量技术,通过远程光电容积脉搏波描记法(RPPG)和面部振动信息实现非接触式生理信号采集。创新性地结合框选和特征点选择多个感兴趣区域(ROI),并采用光流跟踪、主成分分析(PCA)和集成经验模态分解(EEMD)等方法优化信号处理流程。实验结果表明,该方法在测量精度和稳定性方面优于传统方法,并可在树莓派4等低功耗平台上实现实时运行,具有广泛的应用前景。
深入浅出Win32多线程程序设计之基本概念
一.深入浅出Win32多线程程序设计之基本概念[转] 引言 从单进程单线程到多进程多线程是操作系统发展的一种必然趋势,当年的DOS系统属于单任务操作系统,最优秀的程序员也只能通过驻留内存的方式实现所谓的"多任务",而如今的Win32操作系统却可以一边听音乐,一边编程,一边打印文档。 理解多线程及其同步、互斥等通信方式是理解现代操作系统的关键一环,当我们精通了Win32多线程程序设计后,理解和...
北斗导航 | 卡尔曼滤波与因子图优化对比(附图优化matlab代码)
- 历史数据利用:因子图通过滑动窗口保留历史状态,优化时联合多帧数据;卡尔曼滤波仅依赖当前和上一帧状态 。 - 迭代优化:因子图通过多次迭代逼近最优解,卡尔曼滤波仅单次更新 。 - 误差抑制:因子图的多次线性化可有效抑制非线性误差(如GNSS伪距观测的非线性) 。
VC++深入详解学习笔记
Lesson1: Windows程序运行原理及程序编写流程 窗口产生过程,句柄原理,消息队列,回调函数,窗口关闭与应用程序退出的工作关系,使用VC++的若干小技巧,stdcall与Lessonecl调用规范的比较,初学者常犯错误及注意事项。 1. Windows API与Win32 SDK 操作系统提供了各种方便开发Windows应用程序的编程接口,所的函数都在Win
visio安装包
Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。
汉书HE8,好用的汇编代码编写工具
汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大
孙鑫视频VC++深入详解学习笔记(全)
Lesson1: Windows程序运行原理及程序编写流程 窗口产生过程,句柄原理,消息队列,回调函数,窗口关闭与应用程序退出的工作关系,使用VC++的若干小技巧,stdcall与Lessonecl调用规范的比较,初学者常犯错误及注意事项。 1. Windows API与Win32 SDK 操作系统提供了各种方便开发Windows应用程序的编程接口,所的函数都在Win
大中型超市收银系统(可直接运行)
光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开
深入浅出Win32多线程程序设计(一)
深入浅出Win32多线程程序设计之基本概念 引言 从单进程单线程到多进程多线程是操作系统发展的一种必然趋势,当年的DOS系统属于单任务操作系统,最优秀的程序员也只能通过驻留内存的方式实现所谓的"多任务",而如今的Win32操作系统却可以一边听音乐,一边编程,一边打印文档。 理解多线程及其同步、互斥等通信方式是理解现代操作系统的关键一环,当我们精通了Wi...
Win32程序设计(Windows程序设计机理)
Win32程序设计,又常常被叫做SDK/API编程,现在使用Win32的程序员确实已经很少了,主要是因为用win32写代码比用vc写起来还累,但是Win32编程常常又是非常有效率的,现在用的比较多的就是在编写游戏中.很多人在学习VC的时候总是抱怨vc太难了,有点老虎吃天的感觉,总是不知道如何下口,甚至有些人用了一两年都还没有入门,如果你有这样的感觉,不如先去读一下关于Win32 SDK的资料...
Windows环境下32位汇编语言程序设计(典藏版)
《Windows环境下32位汇编语言程序设计(典藏版)》 基本信息 作者:罗云彬 出版社:电子工业出版社 ISBN:9787121207594 上架时间:2013-7-8 出版日期:2013年7月 开本:...
深入浅出Win32多线程程序设计之(五):综合实例
<br />本章我们将以工业控制和嵌入式系统中运用极为广泛的串口通信为例讲述多线程的典型应用。<br /><br /> 而网络通信也是多线程应用最广泛的领域之一,所以本章的最后一节也将对多线程网络通信进行简短的描述。<br /><br />1.串口通信<br /><br /> 在工业控制系统中,工控机(一般都基于PC Windows平台)经常需要与单片机通过串口进行通信。因此,操作和使用PC的串口成为大多数单片机、嵌入式系统领域工程师必须具备的能力。<br /><br /> 串口的使用需要
深入浅出Win32多线程程序设计之综合实例
深入浅出Win32多线程程序设计之综合实例 2005-12-23 09:52 作者: 宋宝华 出处: 天极开发 责任编辑:方舟 document.write("");document.write(""); 本章我们将以工业控制和嵌入式系统中运用极为广泛
深入浅出Win32多线程程序设计
引言 从单进程单线程到多进程多线程是操作系统发展的一种必然趋势,当年的DOS系统属于单任务操作系统,最优秀的程序员也只能通过驻留内存的方式实现所谓的"多任务",而如今的Win32操作系统却可以一边听音乐,一边编程,一边打印文档。 理解多线程及其同步、互斥等通信方式是理解现代操作系统的关键一环,当我们精通了Win32多线程程序设计后,理解和学习其它操作系统的多任务控制也非常容易。


1334



被折叠的 条评论
为什么被折叠?



