针对 TLS HandShake 中服务器下发的 `Certificate`,macOS/iOS 的 Security.framework 的 SecPolicy.h/SecTrust.h 中定义了证书校验信任评估的接口。调用 `SecTrustEvaluate` 对证书校验通过后,客户端需要基于对服务器的信任来建立凭证。……继续阅读 » 弦苦 3年前 (2022-03-19) 2716浏览 0评论1574个赞
套接字,简单的说就是通信双方的一种约定,用套接字中的相关函数来完成通信过程。应用层通过传输层进行数据通信时,TCP和UDP会遇到同时为多个应用程序进程提供并发服务的问题。本文初步梳理了socket相关概念和模式。……继续阅读 » 弦苦 3年前 (2022-03-19) 3030浏览 0评论2610个赞
完成端口对象取代了WSAAsyncSelect中的消息驱动和WSAEventSelect中的事件对象,当然完成端口模型的内部机制要比WSAAsyncSelect和WSAEventSelect模型复杂得多。……继续阅读 » 弦苦 3年前 (2022-03-19) 2421浏览 0评论1945个赞
Socket网络通信库、C/S Framework、流媒体及P2P方面的一些开源项目参考……继续阅读 » 弦苦 3年前 (2022-03-19) 1509浏览 0评论1593个赞
802.1X协议的工作机制流程详解802.1X协议是一种基于端口的网络接入控制协议,“基于端口的网络接入控制”是指在局域网接入设备的端口这一级,对所接入的用户设备进行认证和控制。作为一个认证协议,802.1X在实现的过程中有很多重要的工作机制。下图显示了802.1X协议的基本原理:Supplicant发出一个连接请求(EPAoL,ExtensibleAuth……继续阅读 » 弦苦 3年前 (2022-03-19) 1263浏览 0评论1398个赞
P2P的原理和常见的实现方式 为了项目的后期IM应用,最近在研究libjingle,中间看了也收集了很多资料,感慨网上很多资料要么太过于纠结协议(如STUN、ICE等)实现细节,要么中间有很多纰漏。最后去伪存真,归纳总结了一下,希望对以后的同行有些许帮助。如果有什么需要讨论或者指正的,欢迎留言或者邮件peakflys@gmail.com 一.P2P实现的原理……继续阅读 » 弦苦 3年前 (2022-03-19) 3246浏览 0评论1658个赞
WNR3500L+TOMATO网络结构分析前几个月入手了一个官翻的WNR3500L,此路由号称开源并对第三方固件支持是很吸引我的地方,开始先是刷了DD-WRT后来又换成TOMATO,在换成TOMATO后通过ssh连接到路由,ifconfig显示出了一大堆interface,除了熟悉的eth0,eht1,br0外,还多出vlan0,vlan1之类的,通过运行b……继续阅读 » 弦苦 3年前 (2022-03-19) 2767浏览 0评论835个赞
6.2.1 接受连接的方法Winsock扩展函数AcceptEx是唯一能够使用重叠I/O接受客户连接的函数。下面主要深入探讨使用该函数接收连接的问题。前面已经讨论过,当客户连接进来时,服务器需要创建一个套接字来负责维护与一个客户端的会话。使用AcceptEx函数之前必须创建一些套接字,并且这些套接字必须是未绑定、未连接的,即使它们可能在调用TransmitF……继续阅读 » 弦苦 3年前 (2022-03-19) 2996浏览 0评论2635个赞
一.重叠I/O模型的概念当调用ReadFile()和WriteFile()时,如果最后一个参数lpOverlapped设置为NULL,那么线程就阻塞在这里,直到读写完指定的数据后,它们才返回。这样在读写大文件的时候,很多时间都浪费在等待ReadFile()和WriteFile()的返回上面。如果ReadFile()和WriteFile()是往管道里读写数据,……继续阅读 » 弦苦 3年前 (2022-03-19) 2989浏览 0评论342个赞
引言要想编写一个高性能的服务器应用程序,必须实现一个高效的线程模型。让太少或者太多的服务器线程来处理客户的请求,都可能导致性能问题。例如,如果一个服务器创建单个线程来处理所有的请求,那么客户端可能长期等待而得不到响应,因为服务器同一时刻只能忙于处理一个请求。当然单个线程也能并发处理多个请求,当I/O操作被启动时,它可以从一个请求切换到另一个请求,但是这种结构……继续阅读 » 弦苦 3年前 (2022-03-19) 1277浏览 0评论107个赞
孙靖 2009.5.5Email:jing_sun999@126.com QQ:272964426前段时间实现了一个小型的C/S架构的多人在线即时通信工具,JIGQQ。其中对使用TCP通信有点心得。 记得在我大学时代,就用VB做过TCP的通信。当然那时候是很初级的,发送的数据量也很小的应用。当时就觉得,有时候发送的数据接收端不能接收到,有时候呢觉得……继续阅读 » 弦苦 3年前 (2022-03-19) 1984浏览 0评论1643个赞
RTP/RTCP/RTSP协议简介……继续阅读 » 弦苦 3年前 (2022-03-19) 2385浏览 0评论2212个赞
RTP OVER HTTP……继续阅读 » 弦苦 3年前 (2022-03-19) 2587浏览 0评论2391个赞
VC网络编程概览,包括WinSock,WinInet客户端和ISAPI服务器应用程序接口。研读MS提供的网络通信部分的源码对于我们学习网络编程会有很大帮助。……继续阅读 » 弦苦 3年前 (2022-03-19) 2723浏览 0评论2177个赞
TCP/IP通信基础知识……继续阅读 » 弦苦 3年前 (2022-03-19) 1816浏览 0评论1973个赞
浅析数字信号的载波调制……继续阅读 » 弦苦 3年前 (2022-03-19) 2606浏览 0评论1593个赞
一.计算机网络发展简介二.计算机网络拓扑结构三.计算机网络分类四.广域网五.宽带接入技术六.局域网……继续阅读 » 弦苦 3年前 (2022-03-19) 1518浏览 0评论1332个赞
一.中继器二.集线器三.网桥四.交换机五.网卡六.路由器七.网关……继续阅读 » 弦苦 3年前 (2022-03-19) 2155浏览 0评论1920个赞
使用Lua脚本为wireshark编写自定义通信协议解析器插件……继续阅读 » 弦苦 3年前 (2022-03-19) 3272浏览 0评论1517个赞
一.基础概念二.时序与频率三.信号数字化四.数据编码五.数据传输六.信道复用七.数据交换……继续阅读 » 弦苦 3年前 (2022-03-19) 1919浏览 0评论1910个赞
CodeProject – 《A Simple IOCP Server/Client Class》 – 整改……继续阅读 » 弦苦 3年前 (2022-03-19) 1397浏览 0评论2440个赞
重温 阻塞I/O与非阻塞I/O、I/O复用、同步I/O与异步I/O 等基本概念。……继续阅读 » 弦苦 3年前 (2022-03-19) 1570浏览 0评论268个赞
#define FALSE 0 afx.h#define TRUE 1 afx.h#define NULL 0 afx.htypedef void VOID winnt.h // 短整型typedef unsigned shorttyped……继续阅读 » 弦苦 3年前 (2022-03-19) 2903浏览 0评论207个赞
1.新建一个WorkSpace—DllSample。 2.Add New Project to Workspace,新建工程MyDll,工程类型选择“Win32 Dynamic-Link Library”,选择“A DLL that exports some symbols”,即要求VC++自动生成一些导出符号代码。 (1) 在头文件MyDll.h中添加……继续阅读 » 弦苦 3年前 (2022-03-19) 2033浏览 0评论401个赞
What is a Web Service?Web Services Standards(XML -based)-SOAP(Simple Object Access Protocol)-WSDL(Web Service Description Language)-UDDI(Universal Description,Discovery,Integration……继续阅读 » 弦苦 3年前 (2022-03-19) 2014浏览 0评论753个赞
一.判断一个目录是否存在#include #include // szPath末尾无斜杠bool isFolderExist(TCHAR *szFolderPath){ bool exist = true; // false; _tfinddata_t fd; // WIN32_FIND_DATA long hFind = _tfindfirst(szFol……继续阅读 » 弦苦 3年前 (2022-03-19) 2649浏览 0评论2539个赞
INI文件简介在我们写程序时,总有一些配置信息需要保存下来,以便在下一次启动程序完成初始化,这实际上是一种类持久化。将一些信息写入INI文件(initialization file)中,可完成简单的持久化支持。Windows提供了API接口用于操作INI文件,其支持的INI文件格式一般如下:===============================[Se……继续阅读 » 弦苦 3年前 (2022-03-19) 1945浏览 0评论1958个赞
MFC向导生成的对话框为模态对话框,当我们在资源编辑器中向对话框拖拽一个按钮IDC_BTN时,其布局信息将同步反映在DlgDemo.rc资源脚本文件中。// DlgDemo.rcIDD_MY_DIALOG DIALOGEX 0, 0, 320, 201STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTI……继续阅读 » 弦苦 3年前 (2022-03-19) 1911浏览 0评论2724个赞
基于MFC源码,对MFC消息映射包括子控件的命令通知消息的处理流程做一个梳理。……继续阅读 » 弦苦 3年前 (2022-03-19) 2699浏览 0评论2201个赞
CPlex,CFixedAlloc,Memory Pool……继续阅读 » 弦苦 3年前 (2022-03-19) 1676浏览 0评论2940个赞
#include BOOL InitWindowsClass(HINSTANCE hInstance); // 注册窗口类BOOL InitWindows(HINSTANCE hInstance, int nCmdShow); // 创建窗口LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LP……继续阅读 » 弦苦 3年前 (2022-03-19) 2087浏览 0评论1533个赞
一.MsXml创建XML文档示例 // XmlCreationDemo.cpp#include #include // 引入MSXML解析器#import using namespace MSXML2;class InitializeCom{public: InitializeCom() { CoInitialize(NULL); // Ini……继续阅读 » 弦苦 3年前 (2022-03-19) 2303浏览 0评论217个赞
This part of the XML Document Object Model (DOM) reference describes the programming object syntax. The first table lists the core objects/interfaces. The second table lists the im……继续阅读 » 弦苦 3年前 (2022-03-19) 3138浏览 0评论1020个赞
I/O管理器 I/O 管理器定义了有序的结构,或者说是模型,在这个模型里将I/O请求发送给设备驱动程序。I/O系统是包驱动的,大部分I/O请求用I/O请求包(IRP)代表,从一个I/O系统组件传送到另一个组件。(注意:快速I/O不是IRP。)这种设计允许一个应用程序线程可以同时管理多个I/O请求。一个IRP是一个数据结构,包含了完整地描述一个I/O请求的信息……继续阅读 » 弦苦 3年前 (2022-03-19) 1318浏览 0评论431个赞
一.几个What什么是API?API是英文 Application Programming Interface 的简称,意为“应用程序接口”,泛指系统为应用程序提供的一系列接口函数。Windows API是Windows操作系统与应用程序之间的标准接口,它提供了上千个API标准函数、宏和数据结构。在使用VB,VC,Dephi编写应用程序时都可以调用Windo……继续阅读 » 弦苦 3年前 (2022-03-19) 2238浏览 0评论699个赞
1.使用MFC AppWizard生成一个单文档应用程序框架。(1)启动Visual Studio 6.0(2) 文件->新建->项目->MFC AppWizard(exe)->输入项目名称MySDI(3) Step1,选择Single Document。(4) Step2~6,选择默认。(5) F7,Build MySDI.exe即可运行。 2.M……继续阅读 » 弦苦 3年前 (2022-03-19) 1426浏览 0评论1835个赞
一.关于GDI的基本概念什么是GDI?Windows绘图的实质就是利用Windows提供的图形设备接口GDI(Graphics Device Interface)将图形绘制在显示器上。在Windows操作系统中,动态链接库C:/WINDOWS/system32/gdi32.dll(GDI Client DLL)中定义了GDI函数,实现与设备无关的包括屏幕上输……继续阅读 » 弦苦 3年前 (2022-03-19) 1219浏览 0评论338个赞
开发平台:WinXP SP3+IIS5.1+IE7+Visual Studio 2005+Visual Studio 6.0+ MS SOAP Toolkit 3.0 一.创建ASP.NET WebServiceVisual Studio 2005à文件à新建à网站àASP.NET Web服务项目WebServiceDemo。以下为Service.cs代码清……继续阅读 » 弦苦 3年前 (2022-03-19) 2951浏览 0评论2462个赞
下面我们来看看Windows平台下应用程序是怎么调用Windows提供的底层API服务运行的。 我们编写Win32SDK程序时,需要弹出对话框以作出友好的选择,MessageBox这个API函数就可以实现该功能。在开头要添加,因为其包含了众多的API函数声明头文件。为了探究这个小小的MessageBox是怎么弹出来的,我们右击MessageBox,选择“Go……继续阅读 » 弦苦 3年前 (2022-03-19) 1845浏览 0评论2622个赞
1.典型C/C++程序/*HelloC.c*/#includeint main(int argc, char *argv[]){ printf(“Hello C!/n”); return 0;}// HelloCPP1.cpp#includeint main(int argc, char *argv[]){ std::cout……继续阅读 » 弦苦 3年前 (2022-03-19) 2384浏览 0评论2229个赞
除了传统的SDK方式编写Windows应用程序外,还可以使用微软的基础类库MFC。它采用C++程序设计语言对SDK函数进行包装,使Windows下的C语言程序设计,成为面向对象的MFC。以下为MFC窗口应用程序框架示例及解析。 1.建立Win32项目FirstMFC打开Visual Studio 2005à文件à新建à项目àVisual C++àwin32……继续阅读 » 弦苦 3年前 (2022-03-19) 3068浏览 0评论2418个赞
(1)建立单文档MFC项目Draw:NewàProjectsàMFC AppWizard(EXE)àSingle Document。(2)找到CMainFrame::PreCreateWindow函数,在其中设置默认窗口大小为400 pixel*300 pixel。BOOL CMainFrame::PreCreateWindow(CREATESTRUCT……继续阅读 » 弦苦 3年前 (2022-03-19) 2719浏览 0评论2788个赞
为什么要使用UNICODE?(1) 可以很容易地在不同语言之间进行数据交换。(2) 使你能够分配支持所有语言的单个二进制.exe文件或DLL文件。 (3) 提高应用程序的运行效率。……继续阅读 » 弦苦 3年前 (2022-03-19) 2986浏览 0评论1487个赞
字符/0和0的区别字符’0’对应的ASCII码为十六进制30;而’/0’即为ASCII码中的0,其对应字符空字符NUL。 char c = /0;çèchar c = 0 // NUL char c = 0;çèchar c = 48;最典型如memset函数:void *memset( void *buffer, int ch, size_……继续阅读 » 弦苦 3年前 (2022-03-19) 1514浏览 0评论638个赞
编程学习和技术相关的网站集锦。……继续阅读 » 弦苦 3年前 (2022-03-19) 1969浏览 0评论136个赞