TCP 三次握手建立连接 & 四次挥手断开连接……继续阅读 » 弦苦 3年前 (2022-03-19) 1476浏览 0评论673个赞
在 UNIX 系统中,任何 I/O 操作都是通过读写文件描述符(File Descriptor)来实现的。网络通信 I/O 机制也是基于文件描述符来定义实现的。鉴于 WinSock 1 是 WinSock 2 的功能子集,而 WinSock 1 又沿袭兼容 Berkeley Socket API 集,故本文基于 WinSock 1 讲述 socket 编程基……继续阅读 » 弦苦 3年前 (2022-03-19) 1899浏览 0评论2829个赞
针对 TLS HandShake 中服务器下发的 `Certificate`,macOS/iOS 的 Security.framework 的 SecPolicy.h/SecTrust.h 中定义了证书校验信任评估的接口。调用 `SecTrustEvaluate` 对证书校验通过后,客户端需要基于对服务器的信任来建立凭证。……继续阅读 » 弦苦 3年前 (2022-03-19) 2756浏览 0评论2340个赞
套接字,简单的说就是通信双方的一种约定,用套接字中的相关函数来完成通信过程。应用层通过传输层进行数据通信时,TCP和UDP会遇到同时为多个应用程序进程提供并发服务的问题。本文初步梳理了socket相关概念和模式。……继续阅读 » 弦苦 3年前 (2022-03-19) 1241浏览 0评论2261个赞
完成端口对象取代了WSAAsyncSelect中的消息驱动和WSAEventSelect中的事件对象,当然完成端口模型的内部机制要比WSAAsyncSelect和WSAEventSelect模型复杂得多。……继续阅读 » 弦苦 3年前 (2022-03-19) 2577浏览 0评论2600个赞
Socket网络通信库、C/S Framework、流媒体及P2P方面的一些开源项目参考……继续阅读 » 弦苦 3年前 (2022-03-19) 1383浏览 0评论2717个赞
802.1X协议的工作机制流程详解802.1X协议是一种基于端口的网络接入控制协议,“基于端口的网络接入控制”是指在局域网接入设备的端口这一级,对所接入的用户设备进行认证和控制。作为一个认证协议,802.1X在实现的过程中有很多重要的工作机制。下图显示了802.1X协议的基本原理:Supplicant发出一个连接请求(EPAoL,ExtensibleAuth……继续阅读 » 弦苦 3年前 (2022-03-19) 2538浏览 0评论1406个赞
P2P的原理和常见的实现方式 为了项目的后期IM应用,最近在研究libjingle,中间看了也收集了很多资料,感慨网上很多资料要么太过于纠结协议(如STUN、ICE等)实现细节,要么中间有很多纰漏。最后去伪存真,归纳总结了一下,希望对以后的同行有些许帮助。如果有什么需要讨论或者指正的,欢迎留言或者邮件peakflys@gmail.com 一.P2P实现的原理……继续阅读 » 弦苦 3年前 (2022-03-19) 2842浏览 0评论2965个赞
WNR3500L+TOMATO网络结构分析前几个月入手了一个官翻的WNR3500L,此路由号称开源并对第三方固件支持是很吸引我的地方,开始先是刷了DD-WRT后来又换成TOMATO,在换成TOMATO后通过ssh连接到路由,ifconfig显示出了一大堆interface,除了熟悉的eth0,eht1,br0外,还多出vlan0,vlan1之类的,通过运行b……继续阅读 » 弦苦 3年前 (2022-03-19) 1529浏览 0评论827个赞
6.2.1 接受连接的方法Winsock扩展函数AcceptEx是唯一能够使用重叠I/O接受客户连接的函数。下面主要深入探讨使用该函数接收连接的问题。前面已经讨论过,当客户连接进来时,服务器需要创建一个套接字来负责维护与一个客户端的会话。使用AcceptEx函数之前必须创建一些套接字,并且这些套接字必须是未绑定、未连接的,即使它们可能在调用TransmitF……继续阅读 » 弦苦 3年前 (2022-03-19) 2722浏览 0评论2008个赞
一.重叠I/O模型的概念当调用ReadFile()和WriteFile()时,如果最后一个参数lpOverlapped设置为NULL,那么线程就阻塞在这里,直到读写完指定的数据后,它们才返回。这样在读写大文件的时候,很多时间都浪费在等待ReadFile()和WriteFile()的返回上面。如果ReadFile()和WriteFile()是往管道里读写数据,……继续阅读 » 弦苦 3年前 (2022-03-19) 2273浏览 0评论1894个赞
引言要想编写一个高性能的服务器应用程序,必须实现一个高效的线程模型。让太少或者太多的服务器线程来处理客户的请求,都可能导致性能问题。例如,如果一个服务器创建单个线程来处理所有的请求,那么客户端可能长期等待而得不到响应,因为服务器同一时刻只能忙于处理一个请求。当然单个线程也能并发处理多个请求,当I/O操作被启动时,它可以从一个请求切换到另一个请求,但是这种结构……继续阅读 » 弦苦 3年前 (2022-03-19) 1640浏览 0评论1048个赞
孙靖 2009.5.5Email:jing_sun999@126.com QQ:272964426前段时间实现了一个小型的C/S架构的多人在线即时通信工具,JIGQQ。其中对使用TCP通信有点心得。 记得在我大学时代,就用VB做过TCP的通信。当然那时候是很初级的,发送的数据量也很小的应用。当时就觉得,有时候发送的数据接收端不能接收到,有时候呢觉得……继续阅读 » 弦苦 3年前 (2022-03-19) 2579浏览 0评论1249个赞
RTP/RTCP/RTSP协议简介……继续阅读 » 弦苦 3年前 (2022-03-19) 1545浏览 0评论812个赞
RTP OVER HTTP……继续阅读 » 弦苦 3年前 (2022-03-19) 1679浏览 0评论2643个赞
VC网络编程概览,包括WinSock,WinInet客户端和ISAPI服务器应用程序接口。研读MS提供的网络通信部分的源码对于我们学习网络编程会有很大帮助。……继续阅读 » 弦苦 3年前 (2022-03-19) 1591浏览 0评论1007个赞
TCP/IP通信基础知识……继续阅读 » 弦苦 3年前 (2022-03-19) 1460浏览 0评论1798个赞
浅析数字信号的载波调制……继续阅读 » 弦苦 3年前 (2022-03-19) 3040浏览 0评论2371个赞
一.计算机网络发展简介二.计算机网络拓扑结构三.计算机网络分类四.广域网五.宽带接入技术六.局域网……继续阅读 » 弦苦 3年前 (2022-03-19) 3042浏览 0评论1740个赞
一.中继器二.集线器三.网桥四.交换机五.网卡六.路由器七.网关……继续阅读 » 弦苦 3年前 (2022-03-19) 2277浏览 0评论1915个赞
使用Lua脚本为wireshark编写自定义通信协议解析器插件……继续阅读 » 弦苦 3年前 (2022-03-19) 3356浏览 0评论2356个赞
一.基础概念二.时序与频率三.信号数字化四.数据编码五.数据传输六.信道复用七.数据交换……继续阅读 » 弦苦 3年前 (2022-03-19) 2503浏览 0评论993个赞
CodeProject – 《A Simple IOCP Server/Client Class》 – 整改……继续阅读 » 弦苦 3年前 (2022-03-19) 2989浏览 0评论1567个赞
重温 阻塞I/O与非阻塞I/O、I/O复用、同步I/O与异步I/O 等基本概念。……继续阅读 » 弦苦 3年前 (2022-03-19) 2551浏览 0评论375个赞
#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) 3143浏览 0评论2261个赞
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) 2561浏览 0评论2708个赞
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) 1690浏览 0评论959个赞
一.判断一个目录是否存在#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) 1722浏览 0评论664个赞
INI文件简介在我们写程序时,总有一些配置信息需要保存下来,以便在下一次启动程序完成初始化,这实际上是一种类持久化。将一些信息写入INI文件(initialization file)中,可完成简单的持久化支持。Windows提供了API接口用于操作INI文件,其支持的INI文件格式一般如下:===============================[Se……继续阅读 » 弦苦 3年前 (2022-03-19) 2871浏览 0评论887个赞
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) 2430浏览 0评论2969个赞
基于MFC源码,对MFC消息映射包括子控件的命令通知消息的处理流程做一个梳理。……继续阅读 » 弦苦 3年前 (2022-03-19) 2657浏览 0评论739个赞
CPlex,CFixedAlloc,Memory Pool……继续阅读 » 弦苦 3年前 (2022-03-19) 2878浏览 0评论2905个赞
#include BOOL InitWindowsClass(HINSTANCE hInstance); // 注册窗口类BOOL InitWindows(HINSTANCE hInstance, int nCmdShow); // 创建窗口LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LP……继续阅读 » 弦苦 3年前 (2022-03-19) 1598浏览 0评论2513个赞
一.MsXml创建XML文档示例 // XmlCreationDemo.cpp#include #include // 引入MSXML解析器#import using namespace MSXML2;class InitializeCom{public: InitializeCom() { CoInitialize(NULL); // Ini……继续阅读 » 弦苦 3年前 (2022-03-19) 1605浏览 0评论2313个赞
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) 2543浏览 0评论345个赞
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) 1647浏览 0评论1199个赞
一.几个What什么是API?API是英文 Application Programming Interface 的简称,意为“应用程序接口”,泛指系统为应用程序提供的一系列接口函数。Windows API是Windows操作系统与应用程序之间的标准接口,它提供了上千个API标准函数、宏和数据结构。在使用VB,VC,Dephi编写应用程序时都可以调用Windo……继续阅读 » 弦苦 3年前 (2022-03-19) 2531浏览 0评论1581个赞
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) 2625浏览 0评论1671个赞
一.关于GDI的基本概念什么是GDI?Windows绘图的实质就是利用Windows提供的图形设备接口GDI(Graphics Device Interface)将图形绘制在显示器上。在Windows操作系统中,动态链接库C:/WINDOWS/system32/gdi32.dll(GDI Client DLL)中定义了GDI函数,实现与设备无关的包括屏幕上输……继续阅读 » 弦苦 3年前 (2022-03-19) 2053浏览 0评论2635个赞
开发平台: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) 1686浏览 0评论514个赞
下面我们来看看Windows平台下应用程序是怎么调用Windows提供的底层API服务运行的。 我们编写Win32SDK程序时,需要弹出对话框以作出友好的选择,MessageBox这个API函数就可以实现该功能。在开头要添加,因为其包含了众多的API函数声明头文件。为了探究这个小小的MessageBox是怎么弹出来的,我们右击MessageBox,选择“Go……继续阅读 » 弦苦 3年前 (2022-03-19) 2152浏览 0评论722个赞
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) 2487浏览 0评论1238个赞
除了传统的SDK方式编写Windows应用程序外,还可以使用微软的基础类库MFC。它采用C++程序设计语言对SDK函数进行包装,使Windows下的C语言程序设计,成为面向对象的MFC。以下为MFC窗口应用程序框架示例及解析。 1.建立Win32项目FirstMFC打开Visual Studio 2005à文件à新建à项目àVisual C++àwin32……继续阅读 » 弦苦 3年前 (2022-03-19) 2901浏览 0评论1120个赞
(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) 2556浏览 0评论2689个赞
为什么要使用UNICODE?(1) 可以很容易地在不同语言之间进行数据交换。(2) 使你能够分配支持所有语言的单个二进制.exe文件或DLL文件。 (3) 提高应用程序的运行效率。……继续阅读 » 弦苦 3年前 (2022-03-19) 1904浏览 0评论2042个赞