判断FreeEIM网络是否连通(c/c++)

IsNetworkAlive头文件 在编写判断网络是否连接之时需要使用到IsNetworkAlive函数,而其需要 引用头文件 Sensapi.h 和动态链接库Sensapi.lib,哥免费让你们下载 立即下载

// test.cpp : Defines the entry point for the console application.

// freeeim

#include "stdafx.h"

#include "test.h"

#include <Wininet.h>

#include <Sensapi.h>

#ifdef _DEBUG

#define new DEBUG_NEW

#undef THIS_FILE

static char THIS_FILE[] = __FILE__;

#endif

/////////////////////////////////////////////////////////////////////////////

// The one and only application object

CWinApp theApp;

using namespace std;

void Fun_InternetGetConnectedState()

{

 

//#define INTERNET_CONNECTION_MODEM           1

//#define INTERNET_CONNECTION_LAN             2

//#define INTERNET_CONNECTION_PROXY           4

//#define INTERNET_CONNECTION_MODEM_BUSY      8

 

DWORD   flags;//上网方式

BOOL   m_bOnline=TRUE;//是否在线 

m_bOnline=InternetGetConnectedState(&flags,0);  

if(m_bOnline)//在线  

{  

   if ((flags & INTERNET_CONNECTION_MODEM) ==INTERNET_CONNECTION_MODEM)

   {

    cout<<"在线:拨号上网\n";

   }

   if ((flags & INTERNET_CONNECTION_LAN) ==INTERNET_CONNECTION_LAN)

   {

    cout<<"在线:通过局域网\n";

   }

   if ((flags & INTERNET_CONNECTION_PROXY) ==INTERNET_CONNECTION_PROXY)

   {

    cout<<"在线:代理\n";

   }

   if ((flags & INTERNET_CONNECTION_MODEM_BUSY) ==INTERNET_CONNECTION_MODEM_BUSY)

   {

    cout<<"MODEM被其他非INTERNET连接占用\n";

   }

}

else

   cout<<"不在线\n";

}

void Fun_IsNetworkAlive()

{

 

DWORD   flags;//上网方式

BOOL   m_bOnline=TRUE;//是否在线 

m_bOnline=IsNetworkAlive(&flags);  

if(m_bOnline)//在线  

{  

   if ((flags & NETWORK_ALIVE_LAN) ==NETWORK_ALIVE_LAN)

   {

    cout<<"在线:NETWORK_ALIVE_LAN\n";

   }

   if ((flags & NETWORK_ALIVE_WAN) ==NETWORK_ALIVE_WAN)

   {

    cout<<"在线:NETWORK_ALIVE_WAN\n";

   }

   if ((flags & NETWORK_ALIVE_AOL) ==NETWORK_ALIVE_AOL)

   {

    cout<<"在线:NETWORK_ALIVE_AOL\n";

   }

}

else

   cout<<"不在线\n";

}

int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])

{

int nRetCode = 0;

// initialize MFC and print and error on failure

if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0))

{

   // TODO: change error code to suit your needs

   cerr << _T("Fatal Error: MFC initialization failed") << endl;

   nRetCode = 1;

}

else

{

   // TODO: code your application's behavior here.

//   CString strHello;

//   strHello.LoadString(IDS_HELLO);

//   cout << (LPCTSTR)strHello << endl;

   int i=0;

   while (TRUE)

   {

    cout << "请选择测试的方式:\n"

     << "1. InternetGetConnectedState\n"

     << "2. IsNetworkAlive"

     << endl;

    cin >> i;

    switch(i)

    {

    case 1:

     Fun_InternetGetConnectedState();

     break;

    case 2:

     Fun_IsNetworkAlive();

     break;

    default:

     cout << "错误!\n";

    }

    cout << endl;

   }

}

return nRetCode;

}

说明:

InternetGetConnectedState():对网络状况不能及时反应

IsNetworkAlive():可以及时反应网络连通情况,但是需要服务System Event Notification支持(系统默认自动启动该服务)。使用该函数,需要安装最新的SDK(如.net的)

微软文档:

http://www.microsoft.com/china/technet/security/topics/serversecurity/tcg/tcgch07n.mspx

System Event Notification

System Event Notification (SENS) 服务监视并跟踪计算机事件(如 Windows 登录网络和电源事件)。它还将这些事件通知给 COM+ 事件系统 订阅者。在 Windows XP 和 Windows Server 2003 上默认安装并自动运行此服务。

如果 System Event Notification 服务停止,COM+ Event System 服务的订阅者将不会接收到事件通知,并且会发生以下问题:


?
Win32 API IsNetworkAlive() 和 IsDestinationReachable() 将无法运行。这些 API 大多在便携式计算机的移动应用程序中使用。
 
?
ISens* 接口将无法使用。SENS 登录/注销通知将失败。
 
?
SyncMgr (mobsync.exe) 将无法正常运行。SyncMgr 依赖于连接信息,以及来自 SENS 的网络连接/断开、登录/注销通知。
 
?
COM+ EventSystem 试图向 SENS 通知某些事件时将失败。
 
?
Volume Shadow Copy 服务将不能正常加载,这将导致 Windows 备份 API 失败。
 

Spring WebFlux响应式编程实战(三):优雅处理异常与高效调试技巧 本文深入探讨了Spring WebFlux响应式编程中的异常处理与调试技巧。文章通过电商订单流处理场景,详细解析了Reactor核心操作符onErrorReturn、onErrorResume和onErrorMap的实战应用,并介绍了如何构建@ControllerAdvice和WebExceptionHandler全局异常处理防线。同时,提供了使用.log()操作符、Hooks.onOperatorDebug()及BlockHound进行高效调试的方法,旨在帮助开发者构建健壮、可维护的响应式应用。 阅读详情

相关推荐

ERDAS 2022与ArcGIS共存安装教程:如何避免端口冲突(详细配置步骤)

本文提供了一份详细的ERDAS 2022与ArcGIS共存安装教程,核心在于解决两者因FlexNet许可证服务器导致的端口冲突问题。通过分步指导,包括检查现有端口占用、修改ERDAS许可证文件端口号、配置防火墙及客户端设置,确保两款专业GIS与遥感软件能在同一系统上稳定运行。

weixin_29279047的博客 255

InternetGetConnectedState

#include #pragma comment(lib, "Wininet.lib") DWORD GetInternetConnectedState() { DWORD dwFlags = 0; if( InternetGetConnectedState( &dwFlags, 0) ) { #ifndef INTERNET_CONNECTION_CONFIGUR

zgl7903的专栏 2612

使用buildroot系统的qmake编译QT出现Unknown module(s) in QT: xxxx 的错误解决方法

可以看到,我这里使用的是 qt5base-5.15.2 目录下的qmake,这个qmake只包含了基础的qt模块,而额外添加的qt模块没有包含进去,需要使用。可以看到我这里是有的,如果你跟我一样,模块存在,但是还是报找不到对应模块的错误的话,大概率是跟我一样,用错qmake了,看第二点。在包含 qt5base 目录下查看,是否有对应模块的目录,如果没有的话,需要通过make menuconfig 添加一下。目录下的qmake才可以。

T541132的博客 2490

使用API判断网络是否连通(InternetGetConnectedState / IsNetworkAlive)

// test.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include "test.h"#include #include #ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE[]

9450

Python+Tableau 全流程数据分析实战:从数据清洗到商业洞察可视化

本文通过Python+Tableau完整演示电商销售数据分析流程。首先使用Python进行数据清洗(缺失值处理、异常值过滤等)和探索性分析(商品类别、时间趋势等),然后导入Tableau创建交互式可视化仪表盘。分析发现电子产品销售额最高但利润率低,美妆类利润率最优,东部地区销售表现最好。最终提出优化供应链、加强美妆推广等商业建议,展示了Python数据处理与Tableau可视化的高效配合。所有代码可直接运行,适合数据分析初学者和从业者实战参考。

weixin_44520581的博客 338

STM32F103 实例应用(10)——I2C读写24C32

一、应用简介 本文介绍24C32的读写,基于野火的软件I2C程序。 board_i2c.h /**=========================================================================== @file board_i2c.h @brief 本文件是用于I2C驱动 @author 青梅煮久 @version r0.1 @date 2021/01/13 -------------------------.

qq_34118600的博客 3447

使用InternetGetConnectedState判断本地网络状态(C#举例)

函数原型:函数InternetGetConnectedState返回本地系统的网络连接状态。 语法: BOOL InternetGetConnectedState( __out LPDWORD lpdwFlags, __in DWORD dwReserved ); 参数: lpdwFlags[out] 指向一个变量,该变量接收连接描述内容。该参数在函数返回FLASE时仍可以...

weixin_33924770的博客 640

LabVIEW新手必看:5分钟搞定S7-1200 OPC通信(附完整配置截图)

本文详细介绍了LabVIEW与西门子S7-1200 PLC通过OPC通信实现工业监控系统的完整配置流程。从环境准备、PLC数据块配置到OPC Server高级设置,逐步指导新手快速建立稳定通信链路,并分享工业级应用的优化技巧和异常处理方案,帮助用户提升自动化系统集成效率。

rl6adventurer的博客 641

InternetGetConnectedState网络监测函数

#include #pragma comment(lib, "Wininet.lib")   while (1)  {   Sleep(100);   BOOL b = InternetGetConnectedState(&w, 0);          printf("%d/n", w & INTERNET_CONNECTION_LAN);  }

dijkstar的专栏 1186

头歌MySQL数据库实训答案 有目录

头歌java实训答案集数据库部分一条一条的写,可鼠标手动粘贴,除特定命令外未分大小写。 第1关:创建数据库 第2关创建表 第3关:使用主键约束 第4关:外键约束 第5关:添加常用约束 MySQL数据库 - 数据库和表的基本操作(一) 第1关:查看表结构与修改表名 第2关:修改字段名与字段数据类型 第3关:添加与删除字段 第4关:修改字段的排列位置 第5关:删除表的外键约束 MySQL数据库 - 数据库和表的基本操作(二) 第1关:插入数据 第2关:更新数据 第3关:删除数据 MySQL数据库 - 单表查询(

m0_67401761的博客 4万+

C++上机——2023年“信息与未来”小学生编程思维展示官方题解

本次活动前三题是“根据问题描述实现代码”类型的问题,题解和示例代码由人工智能GPT-4直接阅读题面后生成――只要熟悉C++的语法和基本的编程、调试,即可解决p1、p2、p3。后三题有一定的算法性,我们给出命题思路和一些可能的解法。注意:本题解是面向指导教师的;指导教师在讲解时可以根据学生掌握程度进行调整。

qq_39127687的博客 2297

学网络编程很好的参考源码

  好的参考资料对我们学习具有意想不到的作用,这个源码简单易懂,而且是面向对象的,对于C++初学者来说,非常容易理解。这里就不作介绍,反正很多人就喜欢看源码。我自己测试过可以通过编译了,源码是FreeEIM网络飞鸽传书即时通讯软件(http://www.freeeim.com)。 FreeEIM网络飞鸽传书即时通讯软件源码下载地址:http://download.youkuaiyun.com/source/1

小发猫 1688

1小时读完100篇文献的正确打开方式

各位同仁好,我是七哥。一个在高校里从事人工智能 相关领域研究,钻研用大模型AI实操的学术人。可以和七哥交流学术写作或Gemini、GPT、Claude 等大模型 学术实操相关问题,多多交流,相互成就,共同进步。文献阅读与整理一般都是最先开始、却也最容易被低估的一步。很多学术同仁一开始就陷入越读越多、越读越乱的状态:论文下载了一大堆,但真正能用来支撑自己观点的内容却始终难以提炼出来。一方面,我们需要通过文献了解该研究领域的整体发展脉络,把握当前学界已经讨论到什么程度;

智能AI让学术科研更容易 50

分享一套 C/C++ 开源即时通讯软件

FreeEIM 不同于传统的C/S 模式(Client/Server 结构)的软件,它采用最新的LanIPB 技术,程序可自动查找并获取其他用户的信息,同时显示到‘在线用户’列表中,因此无需配置服务器来支持,使软件的运用更简便。

神经网络爱好者 1358

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

网络飞鸽传书容易犯的错

想在项目中加入聊天室的功能,于是到群里去问,有人说用FreeEIM或飞鸽传书。于是我开始查资料。socket基于TCP协议,一定是需要连接的。又想起腾讯的QQ用的是UDP协议,为什么我们不能用基于UDP协议的应用呢?这样可以节省带宽呀。一查stratus发现正合适,它基于RTMFP协议,而这个协议是基于UDP的。这样一来,客户端之间传递信息可以实现点对点,而不一定经过服务器。看似很有收获,在这

小发猫 1513

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

两台笔记本无线连接

在BIOS或其它管理程序中启用两台笔记本电脑的无线网卡。   1. 双击屏幕右下脚的“无线连接的图标”—“属性”—“常规”—“Internet协议TCP/IP” 建议输入保留的IP地址,如:192.168.0.1,子网掩码:255.255.255.0 2. 另一台电脑同样方法设为:192.168.0.2,子网掩码:255.255.255.0 (注意:IP地址只有最后一位不相同,子网掩码...

goldbull 332

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

解散等内容的飞鸽传书

FreeEIM 企业即时通讯软件源代码2010年8月份最新版 作者: mynote - 日期:2010-10-12 浏览 83 次 FreeEIM 不同于传统的C/S 模式(Client/Server 结构)的软件,它采用最新的LanIPB 技术,程序可自动查找并获取其他用户的信息,同时显示到在线用户列表中,因此无需配置服务器来支持,官网:http://www.freeeim.com/,

神经网络爱好者 1089

预防飞鸽传书垃圾信息

曾经在网络上看到过一篇关于服务器负载均衡的文章,该文章对QQ服务器进行了较深入的分析,是难得的一篇好文。可惜现在找不到啦。如果楼主有耐心还是在网上翻一番,相信对楼主会有很大帮助。印象中记得好像是google的论坛/博客什么的。大致是这样的: 1. 进行服务器集群,非普通意义上的,而是服务器间分布式通信。 2. 一定数量的登录服务器。 3. 分发服务器,将连接分发给其它服务器。根据服务器的负载情

神经网络爱好者 1205

MFC 判断网络通断IsNetworkAlive

官方文档: https://docs.microsoft.com/en-us/windows/desktop/api/sensapi/nf-sensapi-isnetworkalive   1、包含头文件 #include &lt;Wininet.h&gt; #include &lt;Sensapi.h&gt; 2、添加 lib文件 #pragma comment(lib, "Sen...

知其所以然 3402

InternetGetConnectedState用法

这个InternetGetConnectedState在Wininet.h里面,要包括#pragma comment(lib,"Wininet.lib") ------------------------------------------------------------------------------------------------------------------ DWORD

sdustwangjing的专栏 1531

使用InternetGetConnectedState这个API判断网络是否连通

分类: WinCE/ Windows C#/VC++ [cpp] view plaincopy #include "Wininet.h"   #pragma comment(lib,"Wininet.lib")      DWORD   flags;//上网方式      BOOL   m_bOnline;//是否在线  

lin28690的专栏 1048

C# 获取电脑的网络连接状态

判断连网的方法介绍 1. InternetGetConnectedState 此函数获取网络状态有延时,且对网卡伤害较大 MSDN官方自己推荐不建议使用,不管是连网状态下还是断网情况下,获取的网络状态都有不准确的案例,如下:   (BUG) InternetGetConnectedState API returns false result   Detecting LAN c...

weixin_30807677的博客 1941

判断网络是否连接

uses wininet;procedure TForm1.Button1Click(Sender: TObject);var  Types:integer;beginTypes:=INTERNET_CONNECTION_MODEM+INTERNET_CONNECTION_LAN+INTERNET_CONNECTION_PROXY;if internetGetConnectedState(@types,0)  then    edit1.text:='已经连接'    else   edit1.text:=

2005

C#判断联网状态检查电脑联网状态

Chinar blog :www.chinar.xin InternetGetConnectedState 本文提供全流程,中文翻译 Chinar 的初衷是将一种简单的生活方式带给世人使有限时间 具备无限可能 Chinar —— 心分享、心创新!助力快速利用 C# 判断用户电脑联网状态给新手节省宝贵的时间,避免采坑! Chinar 教程...

weixin_33694172的博客 1039

C#判断检查联网状态-判断Unity Window PC电脑联网状态

C#判断检查联网状态-判断Unity Window PC电脑联网状态 本文提供全流程,中文翻译 Unity判断联网状态,适用于所有平台 助力快速利用 C# 判断用户电脑网状态 为新手节省宝贵的时间,避免采坑! Unity 引擎提供的 Application.internetReachability 只适用于移动端,在PC端就会出现无论联网与否,都显示联网 鉴于这种情况,Chinar 推荐大家采用C#引用外部库,调用MSDN封装好的函数,来解决! C++中的 InternetGetConnectedState

Chinar优快云的博客 3083

note : InternetGetConnectedState

/// @file srcNetTips.cpp /// @brief 判断本机是否联网 /// 如果有需要联网后,才会进行的任务. 判断是否能上网,再干活,效率高 /// @ref http://www.cnblogs.com/mikespook/archive/2004/06/25/73784.html #include "stdafx.h" #include

博客标题不能为空 1902
上一篇: 【源码】斗地主人机对战程序算法2012完整版
下一篇: MFC里NewWindow2Explorer1的一些常用处理代码
普通网友
博客等级 码龄22年 1万+粉丝 3156原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值