序言- 介绍
非常希望你花一点点时间看完以下的介绍,这样你会大致了解这篇教程的主要思路。虽一直对写教程举棋不定,但最终还是将其写完。与以往的教程有所不同,本教程是一章接一章的公开,这样更有利于更多的读者予以斧正,便会使最终版变的更加完美(中国人不一直这样做的吗?)。不过为此,我也不得不小心发布顺序,一为读者循序渐进,二为避免文章重复或疏漏……
尽管是一篇WIN32ASM的networking 教程,但作用肯定不仅仅限于使用WIN32ASM(很高兴吧?)其中的的大部分(应该是所有的……)事例都可以用其它编程语言实现。我使用了WIN32ASM 和 C++ 两种语言实现,教程上的很多内容是用一种语言写的,但至于看那种语言的例子和解释就如读者所愿啦,WIN32ASM 使用的是MASM(地球人都知道……),用TASM 或 FASM 的读者也可以很容易的将其吸收到自己的程序中去。同样C++部分也是如此,C 程序员相信也回受益匪浅。C++代码都在 MSVC,BCC,GCC上通过了,应该很好用的。
看不见的是永恒的……
网络编程看上去很简单,你可以无所顾忌地使用那些 winsock 函数,可惜大部分初学者只知道CALL这CALL那,结果程序出现工作不稳定。天那,不知道原理,如何去解决那些让人摸不着头脑的错误。
看来事情并不是我们想象的那样只是收发数据那么简单。举个例子:你是否为收发同步而绞尽脑汁?程序是否已经做好了发送下一条消息的准备?另个麻烦是,接受到的数据是否存在安全隐患?
综上所述,为此本教程的前几章并没有出现大量的代码,只是让你在编程之前知道网络的基础知识和网络编程的要点。请不要对这些预制知识不屑一顾,其实它比真正的编程重要的多。
让我们准备好
- 一本好的 winsock API 参考书,你可以到这里 找到一本旧版HELP格式的winsock 2 API 参考,这本书已经基本可以满足我们的需要了,如果有最新的 SDK 资料自然最好。若你是如此的想与时俱进,可以到下载最新的 PSDK,这里面包含了最新的winsock 2 资料。
- 如果你使用win2K / XP / 2003 可以去下载一个'Winsock Debug Tool'。大致与SNIFFER 相似,自然有多种选择,本文作者写过一个工具 (真的不太好用,我建议使用由 DXQ 写的 WinSock Expert 对中文支持不好,但是由于其体积小,可以做字符过滤,所以我十分喜欢。你也可以使用一些专业的嗅探器如ethereal,IPsniffer 等)。这些工具可以方便的显示所有打开套接字和收发的数据。
- 有一点win32asm or C++ 编程基础。这篇教程专门针对网络编程的,所以我已经假定你有所选语言的实力了。
- 下一篇翻译很快就会出来,在此之前我会先发布一些简单的网络程序。反正也没人看……