标题：网络编程
定义
通过使用套接字来达到进程间通信目的的编程就是网络编程。windows提供的基于网络编程的就是套接字也就是winsock，但是现在Winpcap也是一个比较方便的工具。
网络编程从大的方面说就是对信息的发送到接收，中间传输为物理线路的作用，编程人员可以不用考虑……
网络编程最主要的工作就是在发送端把信息通过规定好的协议进行组装包，在接收端按照规定好的协议把包进行解析，从而提取出对应的信息，达到通信的目的！中间最主要的就是数据包的组装，数据包的过滤，数据包的捕获，数据包的分析，当然最后再做一些处理！
代码,开发工具,数据库,服务器架设和网页设计这5部分你都要接触 
代码分静态代码和动态代码 
静态代码是服务器不解析直接发送给客户端的部分,用做布局效果,一般不用于数据库操作 
静态代码分html,javascript,css等,其中html语言是基础,要学网络编程就先学html语言.javascript用于实现某些特效,css是样式语言.这3个语言组合起来,可以设计出美妙的网页效果 
动态代码是服务器需要解析的部分,用作数据库连接操作等.有php,jsp,asp这几种语言你只用先学一种就可.如果是想快速入门,建议先学asp,如果想学了找工作等,建议学php或jsp, 
开发工具有很多种,我推荐一种,网络3剑客,其中dw是开发代码的,fw是做图的.flash是做动画的. 
数据库要结合你学的动态语言来选择,asp系列的,你可以使用access,大型点使用mySQL. 
php和mySQL是很好的搭档. 
服务器架设也是结合你学的动态语言的,windows下安装iis很方便,iis可以运行asp,安装.net框架后能运行，这两者架设相对简单,也是我推荐你入门学asp的原因.php一般安装apache服务器,jsp一般安装tomcat服务器.只有架设好服务器,才能浏览动态语言编写的程序. 
虽然是编程,但是总会涉及到网页设计部分,还是要去学学怎么简单的作图和动画。
网络编程介绍
Internet网络模型网络模型：描述网络的结构原理和工作原理
OSI参考模型：七层
Internet网络模型：四层 
网络协议：指定层上进行数据交换的规则。
Internet的网络层协议：IP协议；DNS协议(辅助协议)
Internet的传输层协议：TCP协议；UDP协议。
套接字基础套接字(Sockets)：应用程序和网络协议的接口。
Java Sockets：Java应用程序和网络协议的接口，提供若干个类的定义。
Java应用程序利用这些类继承网络协议的行为，实现网络通信。
TCP Sockets：使用TCP协议实现可靠的网络通信。
UDP Sockets：使用UDP协议实现效率较高的网络通信。
数据包组包基础数据包是网络通信编程的一个重要概念,也称为组装包,指在应用层数据或报文按照一定事先规定好的规则整合的数据集合，实际操作包括组包(打包)，数据包传送，解包。 组包(打包)，指按照协议把零散的数据或报文按照组合起来，实际应用中,比如在C++编程中,往往定义一种新的数据类型用来存储数据包的结构。数据包传送，指数据包的电气物理传输。解包，指接收端对接收的数据进行解析，获得有用信息和数据。
数据包经常通过套接字来传送．
网络编程语言：
一、汇编语言汇编语言的实质和机器语言是相同的，都是直接对硬件操作，只不过指令采用了英文缩写的标识符，更容易识别和记忆。它同样需要编程者将每一步具体的操作用命令的形式写出来。
汇编程序通常由三部分组成：指令、伪指令和宏指令。汇编程序的每一句指令只能对应实际操作过程中的一个很细微的动作，例如移动、自增，因此汇编源程序一般比较冗长、复杂、容易出错，而且使用汇编语言编程需要有更多的计算机专业知识，但汇编语言的优点也是显而易见的，用汇编语言所能完成的操作不是一般高级语言所能实现的，而且源程序经汇编生成的可执行文件不仅比较小，而且执行速度很快。
二、高级语言高级语言主要是相对于汇编语言而言，它并不是特指某一种具体的语言，而是包括了很多编程语言，这些语言的语法、命令格式都各不相同。高级语言所编制的程序不能直接被计算机识别，必须经过转换才能被执行，按转换方式可将它们分为两类:
解释类：执行方式类似于我们日常生活中的“同声翻译”，应用程序源代码一边由相应语言的解释器“翻译”成目标代码(机器语言)，一边执行，因此效率比较低，而且不能生成可独立执行的可执行文件，应用程序不能脱离其解释器，但这种方式比较灵活，可以动态地调整、修改应用程序。
编译类：编译是指在应用源程序执行之前，就将程序源代码“翻译”成目标代码(机器语言)，因此其目标程序可以脱离其语言环境独立执行，使用比较方便、效率较高。但应用程序一旦需要修改，必须先修改源代码，再重新编译生成新的目标文件(* .OBJ)才能执行，只有目标文件而没有源代码，修改很不方便。现在大多数的编程语言都是编译型的，例如Visual C++、Visual Foxpro、Delphi等。
三、语言种类介绍网络编程语言主要包括PHP、ASP、NET、JSP。[1]
1、PHP 
PHP 即Hypertext Preprocessor(超文本预处理器)，它是当今Internet上最为火热的脚本语言，其语法借鉴了C、Java、PERL等语言，但只需要很少的编程知识你就能使用PHP建立一个真正交互的Web站点。它与HTML语言具有非常好的兼容性，使用者可以直接在脚本代码中加入HTML标签，或者在HTML标签中加入脚本代码从而更好地实现页面控制。PHP提供了标准的数据库接口，数据库连接方便，兼容性强；扩展性强；可以进行面向对象编程。 
2、ASP 
ASP 即Active Server Pages，它是微软开发的一种类似HTML(超文本标识语言)、Script(脚本)与CGI(公用网关接口)的结合体，它没有提供自己专门的编程语言，而是允许用户使用许多已有的脚本语言编写ASP的应用程序。ASP的程序编制比HTML更方便且更有灵活性。它是在Web服务器端运行，运行后再将运行结果以HTML格式传送至客户端的浏览器。ASP程序语言最大的不足就是安全性不够好。 　ASP的最大好处是可以包含HTML标签，也可以直接存取数据库及使用无限扩充的ActiveX控件，因此在程序编制上要比HTML方便而且更富有灵活性。通过使用ASP的组件和对象技术，用户可以直接使用ActiveX控件，调用对象方法和属性，以简单的方式实现强大的交互功能。 　但ASP技术也非完美无缺，由于它基本上是局限于微软的操作系统平台之上，主要工作环境是微软的IIS应用程序结构，又因ActiveX对象具有平台特性，所以ASP技术不能很容易地实现在跨平台Web服务器上工作。 
3、JSP 
JSP 即Java Server Pages，它是由Sun Microsystem公司于1999年6月推出的新技术，是基于Java Servlet以及整个Java体系的Web开发技术。 　JSP和ASP在技术方面有许多相似之处，不过两者来源于不同的技术规范组织，以至 ASP一般只应用于Windows NT/2000平台，而JSP则可以在85%以上的服务器上运行，而且基于JSP技术的应用程序比基于ASP的应用程序易于维护和管理，所以被许多人认为是未来最有发展前途的动态网站技术。 
4、NET 
NET是ASP的升级版，也是由微软开发，但是和ASP却有天壤之别。NET的版本有1.1、2.0、3.0、3.5、4.0。是网站动态编程语言里最好用的语言，不过易学难精。NET2.0开始，NET把前台代码和后台程序分为两个文件管理，使得NET表现和逻辑相分离。NET网站开发跟软件开发差不多。NET的网站是编译执行的，效率比ASP高很多。NET在功能性、安全性和面向对象方面都做的非常优秀，是非常不错的网站编程语言。
网络编程学习书籍
《Windows网络编程技术》（推荐指数：五星）中文版高清PDF格式 486页 ，极力推荐，含目录书签，是一本内容丰富，讲解详细的Windows网编。　
《TCP/IP详解》共三卷，《TCP/IP详解卷1：协议》描述了属于每一层的各个协议以及它们如何在不同操作系统中运行。作者LawrenceBerkeley实验室的tcpdump程序来捕获不同操作系统和TCP/IP实现之间传输的不同分组。对tcpdump输出的研究可以帮助理解不同协议如何工作。　
《C++网络编程 卷1》 《C++网络编程,卷2》 　本书将向你描述这些框架的设计，以及它们可怎样帮助你克服较低级的本地操作系统API与较高级的分布式计算中间的各种局限，高效地开发出高质量、可移植的C++网络化应用。
《Unix网络编程》本书是一部UNIX网络编程的经典之作。附录中给出了测量各种IPC形式性能的方法。本书内容详尽且具权威性，几乎每章都提供精选的习题，并提供了部分习题的答案，是网络研究和开发人员理想的参考书。