欢迎来到 嗅灵易学

零基础也能上手的脚本技术课,一对一答疑带你入门

Visual C++网络编程(黑客)学习笔记

Visual C++网络编程(黑客)学习笔记

最近在学VC下的黑客编程,自己整理了一下笔记,发出来,与同学共享。

所有在WIN32平台上的WinSock编程都要经过下列步骤:
(1)定义变量
(2)获得WinSock版本
(3)加载WinSock库
(4)初始化
(5)创建套接字
(6)设置套接字选项
(7)关闭套接字
(8)卸载WinSock库
(9)释放所有资源
注意:对于一款简单的程序来说最后不释放资源可能看不出有什么影响,但如果是多线程或者创建了多个Socket对象而不释放资源的话,那么就会对系统造成较大影响,形成所谓的内存泄露,尤其是有大量操作数据库的动作!C或者C++不像python会自动回收不用的内存,因为他没有自动回收不用内存的机制,所以请务必释放掉所有资源。
传统的网络通信模式——C/S模式,即客户端和服务器模式。
整个程序架构分为两大部分:服务器端和客户端。
服务器端Socket程序流程:socket()——bind()——listen()——accept()——recv()/send()——closesocket()
客户端Socket程序流程:socket()——connect()——send()/recv()——closesocket()
使用Socket的程序在使用之前必须调用WSAStartup函数,此函数在应用程序中用来初始化Windows Socket DLL,只有此函数调用成功后,应用程序才可以调用Windows Socket DLL中的其他API函数,否则后面的任何函数都将调用失败。
WSAStartup函数的原型:
int WSAStartup(
       WORD wVersionRequested,
       LPWSADATA lpWSAData
);
函数参数解释:
wVersionRequested:应用程序欲使用的Windows Socket版本号。
lpWSAData:指向WSADATA的指针。
函数调用后返回一个 int型的值,通过检查这个值来确定初始化是否成功。该函数执行成功后返回0.在程序中调用该函数的形式如下:
WSAAtartup(MAKEWORD(2,2),(LPWSADATA) &WSAData)
其中MAKEWORD(2,2)表示程序使用的是WinSocket 2版本,WSAData用来存储系统传回的关于WinSocket的结构。

注意:上传附件及图片大小不得大于30M。

⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途。
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。

0 0 0 举报
复制成功