
[Windows]网络编程
零点零一
Make it right before you make it faster. Keep it right when you make it faster. Make it clear before you make it faster. Do not sacrifice clarity for small gains in efficiency. -- Brian Kernighan
展开
-
MFC程序屏蔽F1热键响应help报错
做的一个mfc程序,没有提供help。按下热键F1显示“Failed to launch help”.于是在对话框的dlg类把vk_f1屏蔽,但是仍然出现。于是又找方法。最终在app里面把OnHelp的消息屏蔽后,再按就不会有help的报错了。关于f1热键mfc的响应,在帖子里面谈论的更多,可供参考:怎么屏蔽掉一个窗口的“F1”按键消息?https://bbs.youkuaiyun.com/topics/3...原创 2018-03-29 11:16:35 · 3183 阅读 · 0 评论 -
LookupAccountName函数接受系统和帐户的名称作为输入检索帐户的安全标识符(SID)和找到该帐户的域的名称
LookupAccountName函数接受系统和帐户的名称作为输入。它检索帐户的安全标识符(SID)和找到该帐户的域的名称。LookupAccountNameThe LookupAccountName function accepts the name of a system and an account as input. It retrieves a security iden翻译 2017-10-16 14:58:53 · 4598 阅读 · 0 评论 -
获得WINDOWS下所有用户的信息
使用API中的函数:NetUserEnum来枚举用户;NetUserGetInfo来获取用户的信息.思路应该是这样的。 以下为Windows Conlse Appilication下的枚举所有用户信息的代码(帐户名、帐户状态、是否需要密码(此处可能判断不准确)、上次登录时间、密码是否可更改、密码过期时间):#include "iostream"#include "windows.h"#i转载 2017-10-15 18:23:32 · 3580 阅读 · 1 评论 -
不同WINDOWS平台下磁盘逻辑扇区的直接读写
不同WINDOWS平台下磁盘逻辑扇区的直接读写 关键字:VWIN32、中断、DeviceIoControl 一、概述 在DOS操作系统下,通过BIOS的INT13、DOS的INT25(绝对读)、INT26(绝对写)等功能调用实现对磁盘逻辑扇区或物理扇区的读写是很方便的,C语言中还有对应上述功能调用的函数:biosdisk、absread和abswrite等。但在WINDOWS操转载 2017-10-20 17:23:23 · 1990 阅读 · 0 评论 -
IOCP模型与网络编程
IOCP模型与网络编程一。前言: 在老师分配任务(“尝试利用IOCP模型写出服务端和客户端的代码”)给我时,脑子一片空白,并不知道什么是IOCP模型,会不会是像软件设计模式里面的工厂模式,装饰模式之类的那些呢?嘿嘿,不过好像是一个挺好玩的东西,挺好奇是什么东西来的,又是一个新知识啦~于是,开始去寻找一大堆的资料,为这个了解做准备,只是呢,有时还是想去找一本书去系统地学习一转载 2017-10-09 13:32:22 · 285 阅读 · 0 评论 -
IOCP服务器/客户端实现
IOCP服务器/客户端实现 (转)——A simple IOCP Server/Client Class By spinoza——译: Ocean Email: Ocean2oo6@hotmail.com原文选自CodeProject源代码: http://www.codeproject.com/KB/IP/iocp_server_client/IOCP-D转载 2017-10-09 11:50:18 · 1947 阅读 · 0 评论 -
MSDN例子获取操作系统版本信息Getting the System Version
Getting the System VersionThe following example uses the GetVersionEx function to display the version of the currently running operating system.Relying on version information is not the best w转载 2017-09-12 17:10:34 · 825 阅读 · 0 评论 -
vc获取windows设备枚举设备信息
#include "stdio.h"#include #include #pragma comment(lib, "setupapi.lib")void PrintDevicesInfo1(){ HDEVINFO hDevInfo = SetupDiGetClassDevs(NULL, NULL, NULL, DIGCF_ALLCLASSES); if (hDevInfo ==转载 2017-09-18 13:40:51 · 2618 阅读 · 1 评论 -
微软例子:NetUserEnum函数提供有关服务器上所有用户帐户的信息。
NetUserEnum函数提供有关服务器上所有用户帐户的信息。The NetUserEnum function provides information about all user accounts on a server.要快速枚举用户,计算机或全局组帐户信息,请调用NetQueryDisplayInformation函数。To quickly enumerate user, co转载 2017-09-18 10:10:24 · 1262 阅读 · 0 评论 -
管理员组获取系统权限的完美解决方案
管理员组获取系统权限的完美解决方案关于管理员组(administrators)获取系统(SYSTEM)权限的方法其实已经有很多种了.小四哥就提到了一些:"MSDN系列(3)--Administrator用户直接获取SYSTEM权限"和"远程线程注入版获取SYSTEM权限".这里,我先踩在前辈的肩上列一些可行的方法:1. "利用ZwCreateToken()自己创建一个S转载 2017-09-08 16:38:28 · 2200 阅读 · 0 评论 -
VC获得本机网络连接状态
VC获得本机网络连接状态//本机网络连接类型(成功) #define NET_TYPE_RAS_DIAL_UP_CONNECT_NET 0x01 //上网类型:采用RAS拨号连接上网 0x01 #define NET_TYPE_LAN_CONNECT_NET 0x02 //上网类型:采用网卡通过局域网上网 0x0转载 2017-08-30 08:49:17 · 703 阅读 · 0 评论 -
C++使用libcurl做HttpClient
当使用C++做HTTP客户端时,目前通用的做法就是使用libcurl。其官方网站的地址是http://curl.haxx.se/,该网站主要提供了Curl和libcurl。Curl是命令行工具,用于完成FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以及 LDAP的命令的请求及接收回馈。libcurl提供给开发者,用于使用C++跨平台的开发各种转载 2017-09-13 15:57:36 · 506 阅读 · 0 评论 -
vs2005 warning C4267: 'initializing' : conversion from 'size_t' to 'int', possible loss of data
查MSDN得: size_t unsigned integer Result of sizeof operator. STDDEF.H and other include files 出现C4276 warning是因为测试 32位代码的64位兼容性问题而出现的警告,由/WP64开关控制,默认是打开的。size_t 是针对系统定制的一种数据类型,一般是整形,因为C/转载 2017-08-28 09:46:53 · 1754 阅读 · 0 评论 -
Http/1.1协议 Content-Range头 用于http断点续传
这一个HTTP头记录一下,可以的话或者能帮到别人。在HTTP/1.1协议没出的时候,也就是HTTP/1.0协议,这种协议不可以使用长链接和断点续传和其他新特性;自从这个1.1被广大使用的现在,很多的下载器都被支持断点续传。断点续传也就是从下载断开的哪里,重新接着下载,直到下载完整/可用。如果要使用这种断点续传,4个HTTP头不可少的,分别是Range头、Content-Ra转载 2017-09-13 10:29:30 · 1929 阅读 · 0 评论 -
怎么样判断用户输入的是一个域名还是一个IP地址呢?
in_addr_t inet_addr(const char* strptr);返回:若字符串有效则将字符串转换为32位二进制网络字节序的IPV4地址,否则为INADDR_NONEstruct in_addr{in_addr_t s_addr;}所处头文件: #include 例子:daddr.s_addr=inet_addr("192.16原创 2017-08-23 14:46:55 · 9589 阅读 · 1 评论 -
WINDOWS API ——SETWINDOWLONG—— 设置窗口样式 SetWindowLong 函数原型为:LONG SetWindowLong(HWND hwnd,int nIndex,Lon
WINDOWS API ——SETWINDOWLONG—— 设置窗口样式SetWindowLong 函数原型为:LONG SetWindowLong(HWND hwnd,int nIndex,Long dwNewLong);详见MSDN。下面简单总结一下SetWindowLong函数几种常用的地方:1.设置窗口风格 如:SetWindowLong(hWnd, G转载 2017-08-22 14:35:28 · 1187 阅读 · 0 评论 -
MFC CStringArray 字符串数组类 使用方法
void CCStringArrayTestDlg::OnBnClickedButton1(){ // TODO: 在此添加控件通知处理程序代码 CStringArray as; as.Add("11");//加数据 as.Add("22"); as.Add("33"); as.Add("44"); int size=as.GetSize(); //得长度 for(int转载 2017-08-07 14:06:28 · 34604 阅读 · 6 评论 -
minifilter 与用户态的通信
FilterConnectCommunicationPort opens a new connection to a communication server port that is created by a file system minifilter.HRESULT FilterConnectCommunicationPort( _In_ LPCWSTR转载 2017-08-18 14:52:53 · 1869 阅读 · 0 评论 -
CreateThread导致内存泄露的原因
CreateThread导致内存泄露的原因这得从C运行时库说起了。 VC运行时库,有一个宏errno,用来获得上一步操作的错误码,类似于Win32中的GetLastError()函数。在多线程环境下,不同线程调用errno返回的都是caller线程的错误码,绝对不会混淆,这是因为使用了TLS技术。 TLS,Thread Local Storage,是用来存取线程相关数据的一种技术,转载 2017-10-25 09:50:38 · 874 阅读 · 0 评论 -
从AFX_MANAGE_STATE(AfxGetStaticModuleState())说起
以前写MFC的DLL的时候,总会在自动生成的代码框架里看到提示,需要在每一个输出的函数开始添加上AFX_MANAGE_STATE(AfxGetStaticModuleState())。一直不明白这样做的含义,也一直没有这样做,而且代码也工作得好好的,所以感觉这好像一句废话。最近的项目中,需要在DLL里使用MFC生成界面,这才发现一旦资源放在不同的动态库里,而且还和多线程搅和在一起的时候,事转载 2017-10-26 08:55:20 · 561 阅读 · 0 评论 -
passthru的安装
我要实现的功能是:通过passthru驱动来修改IP包头部的TOS位 passthru是DDK自带的,可以在目录:G:\WINDDK\2600\src\network\ndis\passthru下找到 至于对passthru的安装过程如下所示:(1) 右击“网上邻居”,选择“属性”。(2) 右击“本地连接”,选择“属性”。(3) 在弹出的“本地连接 属性”对话框中选中“常规”属性页,点击“安装”按...转载 2018-03-28 09:43:04 · 1492 阅读 · 3 评论 -
在windows平台用libcurl做双向认证
在windows平台用libcurl做双向认证。对这个问题需要调研一下:查找到两篇文章如下:libcurl使用认证证书 https认证https://blog.youkuaiyun.com/chary8088/article/details/22950843libcurl库的使用支持http、https、ftp(上传、下载、远端目录列表获取)https://blog.youkuaiyun.com/wu110112/art...原创 2018-04-08 10:18:24 · 927 阅读 · 0 评论 -
windows的磁盘操作之九——区分本地磁盘与移动硬盘
最近碰到了个新问题,记录下来作为windows的磁盘操作那个系列的续篇吧。一些时候我们的程序需要区分本地存储设备和USB存储设备。在网上搜一搜一般会找到一个最直接的API,GetDriveType,其原型为UINT GetDriveType(LPCTSTR lpRootPathName)参数lpRootPathName是存储设备的根目录,例如C:\,返回值即为设备类型。Return codeDes...转载 2018-03-30 11:42:29 · 849 阅读 · 1 评论 -
C++ 中通过GetAdaptersInfo获取网卡配置和Ip地址信息
C++ 中通过GetAdaptersInfo获取网卡配置和Ip地址信息一台机器上可能不只有一个网卡,但每一个网卡只有一个MAC地址,而每一个网卡可能配置有多个IP地址;如平常的笔记本电脑中,就会有无线网卡和有线网卡(网线接口)两种;因此,如果要获得本机所有网卡的IP和MAC地址信息,则必须顺序获得每个网卡,再依次获取其信息等;在windows sdk中,用IP_ADAPTER_INFO结构体存储网...转载 2018-03-05 15:47:48 · 406 阅读 · 0 评论 -
两个wireshark的图标wireshark和wireshark legacy的区别
据查在windows平台中,有两个wireshark的图标,一个是wireshark(中文版);另外一个是wireshark legacy (英文版)。原创 2018-03-05 09:40:56 · 4037 阅读 · 2 评论 -
windows获取网卡信息并判断是否是物理网卡 网络适配器的判断
/***********************************************************************函数名称 :IsLocalAdapter函数功能 :根据适配器的名字,判断是否是本地适配器---主要通过注册表进行查看函数参数 : 参数列表格式 [_IN_ _OUT_ _OPTION_] 参数名 说明信息 LPTSTR szName _...转载 2017-12-20 09:57:12 · 6326 阅读 · 0 评论 -
GDI对象错误:CBRUSH释放、CreateSolidBrush的内存释放与内存泄露问题及其解决方法
今天编了一个小程序,内存消耗却很大,随着时间用的越来越久,内存消耗越来越大。研究了一下,原来CBRUSH对象没有释放。原来程序如下:HBRUSH CPORTSetting::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor){HBRUSH hbr ; COLORREF backColor =(COLORREF) GetSysColor(COLOR_...转载 2018-02-23 09:50:57 · 1326 阅读 · 0 评论 -
CloseHandle(),TerminateThread(),ExitThread()的区别
线程的handle用处:线程的handle是指向“线程的内核对象”的,而不是指向线程本身.每个内核对象只是内核分配的一个内存块,并且只能由内核访问。该内存块是一种数据结构,它的成员负责维护对象的各种信息(eg: 安全性描述,引用计数等)。CloseHandle()在CreateThread成功之后会返回一个hThread的handle,且内核对象的计数加1,CloseHandle之后,引用计数减1...转载 2018-02-09 11:09:01 · 248 阅读 · 0 评论 -
VC获得本机网络连接状态
VC获得本机网络连接状态转载:http://www.cppblog.com/wrhwww/archive/2010/12/02/135230.html//本机网络连接类型(成功) #define NET_TYPE_RAS_DIAL_UP_CONNECT_NET 0x01 //上网类型:采用RAS拨号连接上网 0x01 #define转载 2017-12-06 17:21:02 · 597 阅读 · 0 评论 -
VC++ UDP网络控制台程序
原文:http://blog.youkuaiyun.com/ccf19881030/article/details/16991215我在server里面分别添加了发送,在clent添加了接收的部分附在最后面.采用的是VC2008,控制台应用程序,使用UDP编写。1、服务端代码//UDPServer.cpp[cpp] view plai转载 2017-12-11 13:55:19 · 352 阅读 · 0 评论 -
VC修改mac地址的方法
Windows10注册表修改网卡mac地址:https://jingyan.baidu.com/article/84b4f56598958b60f6da32bd.htmlxp 设置 修改网卡mack地址https://jingyan.baidu.com/article/48a420579a90f1a924250484.htmlvc++ 中如何读取和修改MAC的地址转载 2017-11-15 16:28:29 · 696728 阅读 · 0 评论 -
禁用/启用网卡
[cpp] view plain copy#include #include #include #include #include #include #pragma comment(lib,"Iphlpapi.lib") DWORD ErrorCOMToWin32(HRES转载 2017-11-19 11:56:06 · 1284 阅读 · 0 评论 -
LPCTSTR类型理解结合CString加深理解
LPCTSTR类型理解结合CString加深理解本部分内容主要来之百度LPCTSTR用来表示字符串。是否使用UNICODE, 如果你的程序定义了UNICODE或者其他相关的宏,那么这个字符或者字符串将被作为UNICODE字符串,否则就是标准的ANSI字符串。类型理解LPCTSTR类型:L表示long指针 这是为了兼容Windows 3.1等16位操作系统遗留下来的,在w转载 2017-11-19 11:51:04 · 238 阅读 · 0 评论 -
寻找正在连接中的网络连接
寻找正在连接中的网络连接,并开启网络连接的网络连接共享功能。注意:要设置为管理员权限启动工程。否则EnableSharing会失败。[cpp] view plain copy#include #include #include #include #pragma comment(lib,"Iphlpapi转载 2017-11-19 10:32:59 · 519 阅读 · 0 评论 -
INetConnection interface用来提供管理网络连接
以下内容摘自msdnThe INetConnection interface provides methods to manage network connections.MembersThe INetConnection interface inherits from the IUnknown interface. INetConnection also has th转载 2017-11-19 10:28:58 · 572 阅读 · 0 评论 -
errno头文件
以前做IO操作时,常常会得到一个errno_t,其实就是整数 typedef int errno_t;以下是VC的errno头文件,可以看出Error Code定义为一些整数值[cpp] view plain copy/*** *errno.h - system wide error numbers (set by system call转载 2017-10-26 16:27:16 · 5224 阅读 · 0 评论 -
MFC添加快捷方式和删除快捷方式
//浏览文件夹BOOL CShortCutDlg::BrowseForFolder( LPITEMIDLIST pidlRoot,//浏览开始处的PIDL LPITEMIDLIST *ppidlDestination, //浏览结束时所选择的PIDL LPCSTR lpszTitle)//浏览对话框中的提示文字{ BROWSEI转载 2017-08-17 14:35:21 · 1242 阅读 · 0 评论 -
C++ 通过WIN32 API 获取逻辑磁盘详细信息
C++ 通过WIN32 API 获取逻辑磁盘详细信息众所周知,在微软的操作系统下编写应用程序,最主要的还是通过windows所提供的api函数来实现各种操作的,这些函数通常是可以直接使用的,只要包含windows.h这个头文件, 下载源文件今天我们主要介绍的是几个常用的api函数,通过它我们可以获取用户磁盘的相关信息。 其主要函数原型说明如下:转载 2017-08-03 10:18:33 · 1542 阅读 · 2 评论 -
windows winhttp的编程例子,但是头文件和库文件,我的机子环境上没有,只有下载了头文件和库文件后才可以使用。
这是windows winhttp的编程例子,但是头文件和库文件,我的机子环境上没有,只有下载了头文件和库文件后才可以使用。暂时先放置不管,作为记录,以后有精力再进行研究#pragma onceclass CMyHttp{public: CMyHttp(void);public: ~CMyHttp(void);};#include "StdAfx.h"#include原创 2017-05-09 10:32:12 · 1367 阅读 · 0 评论 -
MFC库参考 - WinInet基础知识
MFC库参考 - WinInet基础知识 您可以使用WinInet添加FTP支持,从您的应用程序中下载和上传文件。您可以覆盖OnStatusCallback,并在搜索和下载文件时使用dwContext参数向用户提供进度信息。本文包含以下主题: 创建一个非常简单的浏览器下载网页FTP文件检索Gopher目录在传输文件时显示进度信息下面的代码摘录演示如何创建一个简单翻译 2017-05-05 10:20:11 · 844 阅读 · 0 评论