
├—215例题解析自动控制原理_0
├—21世纪信息与通信技术教程 多媒体通信_0
├—21世纪信息与通信技术教程 数字电路与FPGA_0
├—21世纪信息与通信技术教程 数字语音:语音编码实用教程_0
├—21世纪信息与通信技术教程 现代通信基础与技术_0
├—21世纪大学计算机应用系列教材 JAVA与面向对象程序设计导论_0
├—21世纪大学计算机系列教材 C语言大学实用教程_0
├—21世纪网络平台大学计算机系列教材 离散数学_0
├—21世纪网络平台大学计算机系列教材 网络平台大学计算机信息技术_0
├—21世纪高等学校应用型规划教材 EDA实用技术教程_0
├—21世纪高等学校应用型规划教材 Protel 99SE实用技术教程_0
├—21世纪高等学校应用型规划教材 电子交易与支付_0
├—21世纪高等学校应用型规划教材 网络及电子商务安全_0
├—21世纪高等学校教材 概率论与数理统计 (第二版)_0
├—21世纪高等学校教材 线性代数 (第二版)_0
├—21世纪高等学校电子信息类专业规划教材 Visual Basic程序设计基础教程_0
├—21世纪高等学校电子信息类专业规划教材 Visual Basic程序设计教程_0
├—21世纪高等学校电子信息类专业规划教材 多媒体课件制作实训教程_0
├—21世纪高等学校电子信息类专业规划教材 网络安全技术基础_0
├—21世纪高等学校电子信息类专业规划教材 网络安全概论_0
├—21世纪高等学校电子信息类专业规划教材 网络系统集成技术_0
├—21世纪高等学校电子信息类专业规划教材 计算机信息管理基础_0
├—21世纪高等学校电子信息类专业规划教材 计算机硬件技术基础_0
├—21世纪高等学校电子信息类教材 数字微波通信系统_0
├—21世纪高等学校规划教材 高等数学_0
├—21世纪高等学校计算机基础教育系列教材 数据库应用与程序设计实验指导_0
├—21世纪高等学校计算机基础教育系列教材 数据库应用与程序设计教程_0
├—21世纪高等学校计算机科学与技术教材 面向对象C++程序设计_0
├—21世纪高等院校教材 电磁场与电磁波_0
├—21世纪高等院校教材 遥感数字图像处理_0
├—21世纪高等院校数字艺术设计系列教材 数字动画设计艺术_0
├—21世纪高等院校电气信息类系列教材 单片机原理与应用_0
├—21世纪高等院校规划教材 DSP原理及应用_0
├—21世纪高等院校规划教材 数据通信与计算机网络_0
├—21世纪高等院校计算机教材系列 C语言程序设计教程_0
├—21世纪高等院校计算机科学与工程系列教材 微型计算机原理与接口技术_0
├—21世纪高等院校计算机科学与技术规划教材 Java程序设计简明教程_0
├—21世纪高等院校计算机科学与技术规划教材 微机原理与接口技术 (80386-Pe_0
├—21世纪高等院校计算机系列教材 Java程序设计基础_0
├—21世纪高等院校计算机系列教材 Java程序设计实验与实训_0
├—21世纪高等院校计算机系列教材 管理信息系统_0
├—21世纪高等院校计算机系列教材 编程逻辑与结构化程序设计 (第三版)_0
├—21世纪高职高专信息技术教材 数据库原理及应用教程_0
├—21高等学校电子信息类专业规划教材 计算机引论_0
├—301例题解析电工电路 (中册)_0
├—372例题解析电工电路 (上册)_0
├—488例题解析电工电路 (下册)_0
├—8051单片机彻底研究 基础篇_0
├—8051单片机彻底研究 实习篇_0
├—8051单片机数据传输接口扩展技术与应用实例_0
├—Adobe 数字艺术中心 InDesign CS标准教材_0
├—Advanced C++ (中文版)_0
├—APSL参数化有限元分析技术及其应用实例_0
├—ASP+SQL Server网络应用系统开发与实例_0
├—ASP信息系统设计与开发实列_0
├—Authorware 6_5多媒体制作基础教程_0
├—BHDL实例剖析_0
├—BIOS、注册表与硬盘终极解析_0
├—Blackfin系列DSP原理与系统设计_0
├—C#Builder编程起跑_0
├—C#大学教程_0
├—C#应用程序开发标准教程_0
├—C#程序设计培训教程_0
├—C#面向对象程序设计:台版_0
├—C++ Templates中文版_0
├—C++Builder 6实用编程100例_0
├—C++同构化对象程序设计原理_0
├—C++多范型设计_0
├—C++大学自学教程(第7版)_0
├—C++捷径教程 第3版_0
├—C++程序设计_0
├—C++程序设计实验指导与实训_0
├—C++编程惯用法——高级程序员常用方法和技巧_0
├—C++网络编程 卷2 基于ACE和框架的系统化复用_0
├—C++面向对象程序设计 (第四版)_0
├—CAXA电子图板XP实用教程_0
├—CCNA学习指南 (中文版) (640-801)_0
├—CDMA 无线通信原理_0
├—CPLD_FPGA可编程逻辑器件应用与开发_0
├—C_0
├—C语言与MATLAB接口:编程与实例_0
├—C语言程序设计2_0
├—C语言程序设计3_0
├—C语言程序设计_0
├—C语言程序设计导学_0
├—C语言精彩编程百例_0
├—Delphi 7_0程序设计教程_0
├—Delphi 7应用教程_0
├—Delphi 7数据库开发教程_0
├—Delphi 7数据库高级教程_0
├—Delphi 7程序设计_0
├—Delphi 7课程设计案例精编_0
├—Delphi 程序设计技能百练_0
├—DELPHI 经典游戏程序设计40例_0
├—Delphi串口通信技术与工程实践_0
├—Delphi数据库开发实例解析_0
├—Delphi数据库编程_0
├—Delphi数据库高级实例导航_0
├—Delphi源代码分析_0
├—Delphi程序设计_0
├—Delphi程序设计实训_0
├—Delphi程序设计教程_0
├—Delphi精要2_0
├—Delphi精要_0
├—DSP 通信工程技术应用_0
├—DSP信号处理技术应用_0
├—DSP技术及应用_0
├—DSP控制系统的设计与实现_0
├—DSP算法设计与系统方案_0
├—DSP系统设计与实践_0
├—DSP芯片的原理与开发应用 (第3版)_0
├—DSP集成开发环境:CCS及DSP_BIOS的原理与应用_0
├—DWDM技术原理与应用_0
├—EDA与数字系统设计_0
├—EDA工程实践_0
├—Enterprise Java Bean程序设计实例详解_0
├—Excel 2003中文版入门与提高_0
├—IBM PC 80X86汇编语言程序设计_0
├—IBM信息集成技术原理及应用_0
├—ICSA密码学指南_0
├—IEEE 802_11无线局域网_0
├—IEEE1394接口技术_0
├—Intel微处理器结构、编程与接口 (第六版)_0
├—Intel汇编语言程序设计 第四版_0
├—IP宽带通信网络技术_0
├—J2EE 应用与实践技巧:JAVA设计模式、自动化与性能_0
├—J2EE网络编程标准教程_0
├—J2METM技术手册_0
├—J2ME开发大全_0
├—Java 2学习指南——Sun Certified Programmer_0
├—Java 2实用教程_0
├—Java 2程序设计技能百练_0
├—Java 2简明教程_0
├—Java Web服务开发_0
├—Java 国际认证(SCJP)典型试题1000例_0
├—Java 模式_0
├—Java 游戏编程_0
├—Java 课程设计案例精编_0
├—Java与CORBA客户 服务器编程 第二版_0
├—Java信息系统设计与开发实例_0
├—Java基础教程_0
├—Java实用系统开发指南_0
├—Java实用编程100例_0
├—Java并发编程:设计原则与模式_0
├—Java手机_PDA程序设计入门_0
├—Java数值方法_0
├—Java数据对象_0
├—Java数据库高级教程_0
├—Java数据结构和算法 (第二版)_0
├—Java极限编程_0
├—JAVA程序设计2_0
├—Java程序设计3_0
├—Java程序设计_0
├—Java程序设计基础 (第3版)_0
├—Java程序设计实战训练_0
├—Java程序设计技巧与开发实例_0
├—Java程序设计教程_0
├—Java程序设计高级主题_0
├—Java算法 (第3版,第1卷)_0
├—Java编程原理:面向工程和科学人员_0
├—JAVA缺陷_0
├—Java网络编程基础_0
├—Java语言程序设计_0
├—Java语言程序设计教程_0
├—Java课程设计_0
├—Java软件开发2_0
├—Java软件开发_0
├—Java项目开发实践_0
├—Java高级实用编程_0
├—Jave 2认证考试学习指南 (第四版) (英文版)_0
├—JBuilder 9_0入门与提高_0
├—JBuilder 9_0程序设计——Java程序员成功之路_0
├—JBuilder精髓_0
├—JSP信息系统设计与开发实例_0
├—MATLAB 6_5及其在信号处理中的应用_0
├—MATLAB 6_5图形图像处理_0
├—MATLAB 7_0实用指南 (上册)_0
├—MATLAB 7_0实用指南 (下册)_0
├—MATLAB M语言高级编程_0
├—Matlab 小波分析工具箱原理与应用_0
├—MATLAB与外部程序接口_0
├—MATLAB仿真技术与应用教程_0
├—MATLAB仿真技术主导实例应用教程_0
├—MATLAB信息工程工具箱技术手册_0
├—MATLAB及其在电路与控制理论中的应用_0
├—Matlab图像处理与应用_0
├—MATLAB图形图像处理应用教程_0
├—MATLAB工具箱应用_0
├—MATLAB应用数学工具箱技术手册_0
├—Matlab接口技术与应用_0
├—MATLAB控制工程工具箱技术手册_0
├—MATLAB数学计算范例教程_0
├—MATLAB有限元分析与应用_0
├—MATLAB电力系统设计与分析_0
├—MATLAB程序设计_0
├—MATLAB符号运算及其应用_0
├—MATLAB自动控制原理习题精解_0
├—MCS-51单片机原理及应用实例_0
├—MCS-51系列单片机原理与接口技术_0
├—MCS-51系列单片机系统及其应用 (第二版)_0
├—Microsoft SQL Server 2000宝典_0
├—OP放大电路设计_0
├—Oracle9i数据库原理与应用教程_0
├—OrCAD电路设计_0
├—PCB电磁兼容技术——设计实践_0
├—PC控制及接口程序设计实例_0
├—PIC 单片机原理与接口技术_0
├—PowerBuilder9_0数据窗口技术_0
├—PowerPCB高速电子电路设计与应用_0
├—Protel 2004电路原理图及PCB设计_0
├—Protel 99 SE印制电路板设计教程_0
├—Protel 99 SE原理图与PCB及仿真_0
├—Protel DXP 电路原理图设计指南_0
├—Protel DXP印制电路板设计指南_0
├—Protel DXP电路原理图与PCB设计_0
├—Protel DXP电路原理图与电路板设计教程_0
├—Protel DXP电路图及电路板设计实用教程_0
├—Protel DXP电路设计与仿真_0
├—Protel DXP电路设计与制版实用教程_0
├—Protel DXP电路设计与应用2_0
├—Protel DXP电路设计入门与应用_0
├—Protel DXP电路设计入门与进阶_0
├—Protel DXP电路设计制版入门与提高_0
├—Protel DXP电路设计标准教程_0
├—PSpice 电路优化程序设计_0
├—PSpice 电路设计实用教程_0
├—PSpice电路原理与实现_0
├—PSpice电路编辑程序设计_0
├—PWM控制与驱动器使用指南及应用电路:单端控制与驱动器部分_0
├—Red Hat Linux安全与优化_0
├—Tanner Pro集成电路设计与布局实战指导_0
├—TMS320C500系列DSP系统设计与开发实例_0
├—TMS320C54x DSP应用程序设计教程_0
├—TMS320LF_LC24系列DSP的CPU与外设_0
├—UML及其建模工具的使用_0
├—UML宝典_0
├—UML工具箱_0
├—USB 接口技术_0
├—Verilog HDL数字设计与综合 (第二版)_0
├—Verilog HDL程序设计教程_0
├—Verlog HDL 综合实用教程_0
├—VHDL与微机接口设计_0
├—VHDL数字系统设计 (第二版)_0
├—VHDL电路设计实用教程_0
├—VHDL电路设计技术_0
├—Visual Basic 6_0实践指导_0
├—Visual Basic 6_0应用编程150例_0
├—Visual Basic 程序设计教程_0
├—Visual Basic6_0数据库开发技术与工程实践_0
├—Visual Basic_NET程序设计实训教程_0
├—Visual Basic程序设计2_0
├—Visual Basic程序设计_0
├—Visual C#_NET程序设计经典_0
├—Visual C++ 6_0应用编程150例_0
├—Visual C++ 6_0数据库开发技术与工程实践_0
├—Visual C++6_0数字图像编码_0
├—Visual C++_MATLAB图像处理与识别实用案例精选_0
├—Visual C++_NET数字图像处理技术与应用_0
├—Visual C++_NET程序设计入门_0
├—Visual C++_NET编程实例_0
├—Visual C++_Turbo C串口通信编程实践_0
├—Visual C++数字图像实用工程案例精选_0
├—Visual C++网络通信程序开发指南_0
├—Visual C++网络通信编程实用案例精选_0
├—Visual FoxPro上机实践指导教程_0
├—Visual FoxPro程序设计教程_0
├—Visual Prolog编程、环境及接口_0
├—VisualC++_NET MFC类库应用详解_0
├—WCDMA技术与系统设计:第三代移动通信系统的无线接入_0
├—WCDMA无线通信技术及演化_0
├—WCDMA移动通信技术_0
├—Win32汇编语言实用教程_0
├—Windows安全性编程_0
├—XML编程实例教程_0
├—·工程数学·复变函数_0
├—《Visual Basic程序设计教程》实验与习题_0
├—《中华人民共和国电子签名法》释义及实用指南_0
├—《汇编语言与微机原理》学习指导与训练_0
├—《集成电子技术基础教程》教学指导书_0
├—三星电子绝处逢生的强悍之道_0
├—三级信息管理技术_0
├—三级信息管理技术:新大纲_0
├—专用集成电路_0
├—世界著名大学核心教材 计算机类 C语言程序设计_0
├—中国半导体行业协会集成电路设计分会推荐教材 集成电路设计与九天EDA工具应用_0
├—中国电子信息产品出口研究报告_2003_0
├—中文 Visual Basic 6_0实例教程_0
├—中文CorelDRAW 11_12时尚创作200例_0
├—中文Visual Basic实例全解教程_0
├—企业商务电子化导论_0建议看java编程思想,它可以帮助你深刻领悟java的精髓。以下附上java相关的十大书籍排名: \x0d\\x0d\第一名:Java编程思想(Thinking in java ) \x0d\包含范围:全部。 \x0d\\x0d\没说的,绝对的大师作品,当之无愧的第一。第一版时就享誉整个java界(当时网上好象也有人译了)。国内版是京京工作室翻译的,基本上毁了此书--错误术语太多。推荐高手看E文版,新手就不要先看此书了。第二版更精采,台湾的侯捷译了此书。可以到看看前几章的中文版(不过是台湾术语)。希望国内会快些引入此书,你也可到作者的主页免费下载此书推荐。有chm格式的,非常棒!BTW:这位大师最近在写Thinking in Python相信又是一本经典名著:) \x0d\\x0d\第二名:Java2编程详解(special edition java2) \x0d\包含范围:全部 \x0d\\x0d\这本书会排在core java2的前面可能很多人会不同意,但是就中译本和内容来看非常全面。适合新手成为高手。虽然国内的价位高了些(150),但基本还是值得的。该有的内容都有了,做参考书也很不错。BTW,这个系列中的oracle8/8i使用手册也是一本很经典的书,同样推荐。 \x0d\\x0d\第三名:Java2核心技术卷一,二(core java2 volume1,2) \x0d\包含范围:全部 \x0d\\x0d\这两本我把它们看成一本不会有人有异议吧。这也是Sun的官方的书,我觉得相对来说。第二卷高级特性要比第一卷基础知识好(第一卷又是京京工作室译的--真影响情绪:()。内容同样很全面,但是卷一虽说是基础知识,同样对新手来说不是很合适。感觉条理性不强,而且内容有些混杂,但第二卷完全可以弥补这些--精辟而细致,很适合有一定基础的Java程序员看。 \x0d\\x0d\第四名:Java 2图形设计 卷1:AWT 卷2:Swing-Graphic Java 12 Mastering the JFC Volume I:AWT SWING 3rd Edition \x0d\包含范围:Java图形设计 \x0d\\x0d\没什么说的了,尽管图形设计不如J2EE那么火 ,而且Win32下做应用程序也不是java的强项,但是AWT和Swing仍然是Java程序员的必修课。看这两本就够了,看看厚度就知道了,而且这也是Sun官方出的图书。 \x0d\\x0d\第五名:J2EE构建企业系统专家级解决方案 \x0d\包含范围:J2ee \x0d\\x0d\清华大学出版社 译作者:[美]Paul J Perrone,et al著 张志伟等译 \x0d\\x0d\又是一本极厚的书1038页,105元。不过内容十分丰富,适合想对J2EE整体做了解的程序员,至于每项都想精就不太可能了,呵呵。毕竟在Java中思想是主要的。在这类中有本Java服务器高级编程也很不错,机工华章出的-wrox系列中的。 \x0d\第六名: Java XML编程指南 \x0d\电子工业出版社 译作者: [美]Tom Myers,Alexander Nakhimovsky著 \x0d\\x0d\包含范围:Java+XML \x0d\\x0d\XML在Java中的地位也越来越重要了,而国内能看到的还有一本中国电力出的o eilly的Java和XML。最后我还是选了这本wrox的,当然你要是想好好学学XML本身,还是看看那本XML高级编程吧。wrox系列中的-机工华章出的。 \x0d\\x0d\第七名:书名:Jini核心技术 英文原书名: Core Jini \x0d\作者: WKeith Edwards \x0d\\x0d\包含范围:Jini \x0d\\x0d\Jini也是Java体系中很重要的部分,而且更重要的是这本可能是国内唯一的一本Jini专著-翻译的也不错。在我看来是当之无愧的经典,同样是Sun的官方图书,内容很清晰透彻。 \x0d\\x0d\第八名:Enterprise JavaBeans第二版 英文原书名: Enterprise JAVABEANS \x0d\作者: (美)Richard Monson-Haefel \x0d\\x0d\包含范围:EJB \x0d\\x0d\O‘reilly出的,ejb的重要性我不用多说了吧。尽管有人说这本译的不好,但是同样它是国内目前唯一的EJB专著。o eilly的书就是只讲一方面或一项技术,很细,但价格也不菲,这本书的架构还可以,值得一看。 \x0d\\x0d\!!!!!!!!第九名:数据结构与算法分析(Java版) \x0d\译作者: [美]Clifford AShaffer著 张铭 刘晓丹译 \x0d\\x0d\包含范围:Java算法 \x0d\\x0d\尽管基本上Java图书都是讲Java本身的特性。因为Java的体系太庞大了,而用Java来实现的数据结构与算法,这本书也是唯一一本,所以尽管这本不是那么的好但还是做以推荐。 \x0d\\x0d\第十名:软件工程Java语言实现 英文原书名: Software Engineering with Java \x0d\作者: Stephen RSchach 译者: 袁兆山等 \x0d\\x0d\这本书没什么多说的,纯理论性的东西,但软件工程的重要也是有目共睹的,而且同样是这个领域中唯一的一本Java书。 \x0d\
参考资料:
具体怎样学编程 :
1明确学习目的
学习编程对大多数IT业人员来说都是非常有用的。学编程,做一名编程人员,从个人角度讲,可以解决在软件使用中所遇到的问题,改进现有软件,可以为自己找到一份理想的工作添加重要得砝码,有利于在求职道路上谋得一个好的职位;从国家的角度,可以为中国的软件产业做出应有的贡献,一名优秀的程序员永远是被争夺的对象。学习编程还能锻炼思维,使我们的逻辑思维更加严密;能够不断享受到创新的乐趣,将一直有机会走在高科技的前沿,因为程序设计本身是一种创造性的工作。知识经济时代给我们带来了无限的机会,要想真正掌握计算机技术,并在IT行业里干出一番事业来,有所作为,具有一定的编程能力是一个基本条件和要求。
2打好基础
学编程要具备一定的基础,总结之有以下几方面:
(1)数学基础 从计算机发展和应用的历史来看计算机的数学模型和体系结构等都是有数学家提出的,最早的计算机也是为数值计算而设计的。因此,要学好计算机就要有一定的数学基础,出学者有高中水平就差不多了。
(2)逻辑思维能力的培养学程序设计要有一定的逻辑思维能力,“逻思力”的培养要长时间的实践锻炼。要想成为一名优秀的程序员,最重要的是掌握编程思想。要做到这一点必须在反复的实践、观察、分析、比较、总结中逐渐地积累。因此在学习编程过程中,我们不必等到什么都完全明白了才去动手实践,只要明白了大概,就要敢于自己动手去体验。谁都有第一次。有些问题只有通过实践后才能明白,也只有实践才能把老师和书上的知识变成自己的,高手都是这样成材的。
(3)选择一种合适的入门语言 面对各种各样的语言,应按什么样的顺序学呢?程序设计工具不外乎如下几类: 1)本地开发应用软件开发的工具有:Visual Basic 、Delphi 、VC++ ( C++ Builder ) 等;数据库开发工具有:Visual Foxpro 、Oracle Developer 、Power Builder 等。 2)跨平台开发开发工具如 Java 等。 3)网络开发对客户端开发工具如:Java Script 等;对服务器开发工具如:PHP 、ASP 、JSP 、ISAPI 、NSAPI 、CGI 等。以上不同的环境下几种开发工具中 VB 法简单并容易理解,界面设计是可设化的,易学、易用。选 VB 作为入门的方向对出学者是较为适合的。
3 注意理解一些重要概念
一本程序设计的书看到的无非就是变量、函数、条件语句、循环语句等概念,但要真正能进行编程应用,需要深入理解这些概念,在理解的基础上应用,不要只简单地学习语法、结构,而要吃透针对这些语法、结构的应用例子,做到举一反三,触类旁通。
4掌握编程思想
学习一门语言或开发工具,语法结构、功能调用是次要的,最主要是学习它的思想。例如学习 VC 就要学习 Windows 的内在机理、什么是线程;学习 COM 就要知道 VTALBE 、类厂、接口、idl,关键是学一种思想,有了思想,那么我们就可以触类旁通。
5多实践、多交流
掌握编程思想必须在编程实际工作中去实践和体会。编程起步阶段要经常自己动手设计程序,具体设计时不要拘泥于固定的思维方式,遇到问题要多想几种解决的方案。这就要多交流,各人的思维方式不同、角度各异,各有高招,通过交流可不断吸收别人的长处,丰富编程实践,帮助自己提高水平。亲自动手进行程序设计是创造性思维应用的体现,也是培养逻辑思维的好方法。
6养成良好的编程习惯
编程入门不难,但入门后不断学习是十分重要的,相对来说较为漫长。在此期间要注意养成一些良好的编程习惯。编程风格的好坏很大程度影响程序质量。良好的编程风格可以使程序结构清晰合理,且使程序代码便于维护。如代码的缩进编排、变量命令规则的一致性、代码的注释等。
7上网学编程
在网上可以学到很多不同的编程思想、方法、经验和技巧,有大量的工具和作品及相关的辅导材料供下载。例如网站“编程课堂”()主要以 VB 和 Delph;教学和交流为主,提供大量实用技巧;网站“现在时编程学园”()是专门介绍C、VC、VB、Delphi 等的综合编程网站;网站“ VB 编程乐园 ”()提供内容丰富而且实用的编程技术文章、精选控件、源代码下载、计算机考试、相关软件以及编程书籍推荐等等。
8加强计算机理论知识的再学习
学编程是符合“理论→实践→再理论→再实践”的一个认识过程。一开始要具有一定的计算机理论基础知识,包括编程所需的数学基础知识,具备了入门的条件,就可以开始编程的实践,从实践中可以发现问题需要加强计算机理论知识的再学习。程序人人皆可编,但当你发现编到一定程度很难再提高的时候,就要回头来学习一些计算机科学和数学基础理论。学过之后,很多以前遇到的问题都会迎刃而解,使人有豁然开朗之感。因此在学习编程的过程中要不断地针对应用中的困惑和问题深入学习数据结构、算法、计算机原理、编译原理、 *** 作系统原理、软件工程等计算机科学的理论基础和数理逻辑、代数系统、图论、离散数学等数学理论基础知识。这样经过不断的学习,再努力地实践,编程水平一定会不断提高到一个新高度。
Windows网络与通信程序设计(第2版) 王艳平 这本书写的非常好,我有本王艳平写的 windows程序设计,写得很好,我自己不做网络开发,就没有买网络的那本书!不过推荐你看看,真的很不错!
本书将编程方法、网络协议和应用实例有机结合起来,详细阐明Windows网络编程的各方面内容。本书首先介绍Windows平台上进行网络编程的基础知识,包括网络硬件、术语、协议、Winsock编程接口和各种I/O方法等;然后通过具体实例详细讲述当前流行的高性能可伸缩服务器设计、IP多播和Internet广播、P2P程序设计、原始套接字、SPI、协议驱动的开发和原始以太数据的发送、ARP欺骗技术、LAN和WAN上的扫描和侦测技术、个人防火墙与网络封包截获技术等;最后讲述IP帮助函数和E-mail的开发方法。 本书结构紧凑,内容由浅入
第1章 计算机网络基础 1
11 网络的概念和网络的组成 1
12 计算机网络参考模型 2
121 协议层次 2
122 TCP/IP参考模型 2
123 应用层(Application Layer) 3
124 传输层(Transport Layer) 3
125 网络层(Network Layer) 3
126 链路层(Link Layer) 4
127 物理层(Physical Layer) 4
13 网络程序寻址方式 4
131 MAC地址 4
132 IP地址 5
133 子网寻址 6
134 端口号 8
135 网络地址转换(NAT) 8
14 网络应用程序设计基础 10
141 网络程序体系结构 10
142 网络程序通信实体 11
143 网络程序开发环境 12
第2章 Winsock编程接口 13
21 Winsock库 13
211 Winsock库的装入和释放 13
212 封装CInitSock类 14
22 Winsock的寻址方式和字节顺序 14
221 Winsock寻址 14
222 字节顺序 16
223 获取地址信息 17
23 Winsock编程详解 20
231 Winsock编程流程 20
232 典型过程图 23
233 TCP服务器和客户端程序举例 24
234 UDP编程 26
24 网络对时程序实例 28
241 时间协议(Time Protocol) 28
242 TCP/IP实现代码 29
第3章 Windows套接字I/O模型 31
31 套接字模式 31
311 阻塞模式 31
312 非阻塞模式 31
32 选择(select)模型 32
321 select函数 32
322 应用举例 33
33 WSAAsyncSelect模型 36
331 消息通知和WSAAsyncSelect函数 36
332 应用举例 37
34 WSAEventSelect模型 40
341 WSAEventSelect函数 40
342 应用举例 42
343 基于WSAEventSelect模型的服务器设计 44
35 重叠(Overlapped)I/O模型 53
351 重叠I/O函数 53
352 事件通知方式 56
353 基于重叠I/O模型的服务器设计 56
第4章 IOCP与可伸缩网络程序 67
41 完成端口I/O模型 67
411 什么是完成端口(completion port)对象 67
412 使用IOCP的方法 67
413 示例程序 69
414 恰当地关闭IOCP 72
42 Microsoft扩展函数 72
421 GetAcceptExSockaddrs函数 73
422 TransmitFile函数 73
423 TransmitPackets函数 74
424 ConnectEx函数 75
425 DisconnectEx函数 76
43 可伸缩服务器设计注意事项 76
431 内存资源管理 76
432 接受连接的方法 77
433 恶意客户连接问题 77
434 包重新排序问题 78
44 可伸缩服务器系统设计实例 78
441 CIOCPServer类的总体结构 78
442 数据结构定义和内存池方案 82
443 自定义帮助函数 85
444 开启服务和停止服务 88
445 I/O处理线程 93
446 用户接口和测试程序 99
第5章 互联网广播和IP多播 100
51 套接字选项和I/O控制命令 100
511 套接字选项 100
512 I/O控制命令 102
52 广播通信 103
53 IP多播(Multicasting) 105
531 多播地址 105
532 组管理协议(IGMP) 105
533 使用IP多播 106
54 基于IP多播的组讨论会实例 110
541 定义组讨论会协议 110
542 线程通信机制 111
543 封装CGroupTalk类 111
544 程序界面 117
第6章 原始套接字 121
61 使用原始套接字 121
62 ICMP编程 121
621 ICMP与校验和的计算 121
622 Ping程序实例 124
623 路由跟踪 126
63 使用IP头包含选项 129
631 IP数据报格式 129
632 UDP数据报格式 131
633 原始UDP封包发送实例 133
64 网络嗅探器开发实例 134
641 嗅探器设计原理 135
642 网络嗅探器的具体实现 136
643 侦听局域网内的密码 138
65 TCP通信开发实例 140
651 创建一个原始套接字,并设置IP头选项 140
652 构造IP头和TCP头 140
653 发送原始套接字数据报 142
654 接收数据 146
第7章 Winsock服务提供者接口(SPI) 147
71 SPI概述 147
72 Winsock协议目录 148
721 协议特性 149
722 使用Winsock API函数枚举协议 150
723 使用Winsock SPI函数枚举协议 151
73 分层服务提供者(LSP) 153
731 运行原理 153
732 安装LSP 154
733 移除LSP 158
734 编写LSP 159
735 LSP实例 161
74 基于SPI的数据报过滤实例 165
75 基于Winsock的网络聊天室开发 171
751 服务端 171
752 客户端 171
753 聊天室程序的设计说明 172
754 核心代码分析 172
第8章 Windows网络驱动接口标准(NDIS)和协议驱动的开发 176
81 核心层网络驱动 176
811 Windows 2000及其后产品的网络体系结构 176
812 NDIS网络驱动程序 177
813 网络驱动开发环境 178
82 WDM驱动开发基础 181
821 UNICODE字符串 181
822 设备对象 181
823 驱动程序的基本结构 183
824 I/O请求包(I/O request packet,IRP)和I/O堆栈 183
825 完整驱动程序示例 186
826 扩展派遣接口 188
827 应用举例(进程诊测实例) 191
83 开发NDIS网络驱动预备知识 198
831 中断请求级别(Interrupt Request Level,IRQL) 198
832 旋转锁(Spin Lock) 198
833 双链表 199
834 封包结构 199
84 NDIS协议驱动 200
841 注册协议驱动 200
842 打开下层协议驱动的适配器 201
843 协议驱动的封包管理 202
844 在协议驱动中接收数据 203
845 从协议驱动发送封包 204
85 NDIS协议驱动开发实例 204
851 总体设计 204
852 NDIS协议驱动的初始化、注册和卸载 206
853 下层NIC的绑定和解除绑定 209
854 发送数据 217
855 接收数据 219
856 用户IOCTL处理 225
第9章 网络扫描与检测技术 233
91 网络扫描基础知识 233
911 以太网数据帧 233
912 ARP 234
913 ARP格式 236
914 SendARP函数 237
92 原始以太封包的发送 238
921 安装协议驱动 238
922 协议驱动用户接口 238
923 发送以太封包的测试程序 244
93 局域网计算机扫描 245
931 管理原始ARP封包 246
932 ARP扫描示例 249
94 互联网计算机扫描 253
941 端口扫描原理 253
942 半开端口扫描实现 254
95 ARP欺骗原理与实现 259
951 IP欺骗的用途和实现原理 259
952 IP地址冲突 260
953 ARP欺骗示例 261
第10章 点对点(P2P)网络通信技术 264
101 P2P穿越概述 264
102 一般概念 265
1021 NAT术语 265
1022 中转 265
1023 反向连接 266
103 UDP打洞 267
1031 中心服务器 267
1032 建立点对点会话 267
1033 公共NAT后面的节点 267
1034 不同NAT后面的节点 268
1035 多级NAT后面的节点 269
1036 UDP空闲超时 270
104 TCP打洞 271
1041 套接字和TCP端口重用 271
1042 打开点对点的TCP流 271
1043 应用程序看到的行为 272
1044 同步TCP打开 273
105 Internet点对点通信实例 273
1051 总体设计 273
1052 定义P2P通信协议 274
1053 客户方程序 275
1054 服务器方程序 287
1055 测试程序 291
第11章 核心层网络封包截获技术 294
111 Windows网络数据和封包过滤概述 294
1111 Windows网络系统体系结构图 294
1112 用户模式下的网络数据过滤 295
1113 内核模式下的网络数据过滤 296
112 中间层网络驱动PassThru 296
1121 PassThru NDIS中间层驱动简介 296
1122 编译和安装PassThru驱动 297
113 扩展PassThru NDIS IM驱动——添加IOCTL接口 297
1131 扩展之后的PassThru驱动(PassThruEx)概况 297
1132 添加基本的DeviceIoControl接口 298
1133 添加绑定枚举功能 302
1134 添加ADAPT结构的引用计数 307
1135 适配器句柄的打开/关闭函数 308
1136 句柄事件通知 315
1137 查询和设置适配器的OID信息 315
114 扩展PassThru NDIS IM驱动——添加过滤规则 323
1141 需要考虑的事项 323
1142 过滤相关的数据结构 324
1143 过滤列表 326
1144 网络活动状态 327
1145 IOCTL控制代码 328
1146 过滤数据 331
115 核心层过滤实例 339
第12章 Windows网络防火墙开发技术 342
121 防火墙技术概述 342
122 金羽(Phoenix)个人防火墙浅析 343
1221 金羽(Phoenix)个人防火墙简介 343
1222 金羽(Phoenix)个人防火墙总体设计 344
1223 金羽(Phoenix)个人防火墙总体结构 345
123 开发前的准备 345
1231 常量的定义 346
1232 访问规则 348
1233 会话结构 348
1234 文件结构 349
1235 UNICODE支持 355
124 应用层DLL模块 356
1241 DLL工程框架 356
1242 共享数据和IO控制 362
1243 访问控制列表ACL(Access List) 364
1244 查找应用程序访问权限的过程 367
1245 类的接口——检查函数 370
125 核心层SYS模块 373
126 主模块工程 375
1261 I/O控制类 375
1262 主应用程序类 377
1263 主对话框中的属性页 380
1264 主窗口类 381
127 防火墙页面 383
1271 网络访问监视页面 383
1272 应用层过滤规则页面 387
1273 核心层过滤规则页面 397
1274 系统设置页面 403
第13章 IP帮助函数 406
131 IP配置信息 406
1311 获取网络配置信息 406
1312 管理网络接口 408
1313 管理IP地址 412
132 获取网络状态信息 415
1321 获取TCP连接表 415
1322 获取UDP监听表 418
1323 获取IP统计数据 420
133 路由管理 427
1331 获取路由表 427
1332 管理特定路由 431
1333 修改默认网关的例子 432
134 ARP表管理 433
1341 获取ARP表 433
1342 添加ARP入口 434
1343 删除ARP入口 434
1344 打印ARP表的例子 434
135 进程网络活动监视实例 438
1351 获取通信的进程终端 438
1352 Netstate源程序代码 439
第14章 Email协议及其编程 444
141 概述 444
142 电子邮件介绍 445
1421 电子邮件Internet的地址 445
1422 Internet邮件系统 445
1423 电子邮件信头的结构及分析 446
143 SMTP原理 448
1431 SMTP原理分析 448
1432 SMTP工作机制 449
1433 SMTP命令码和工作原理 449
1434 SMTP通信模型 450
1435 SMTP的命令和应答 451
144 POP3协议原理 452
1441 POP3协议简介 452
1442 POP3工作原理 453
1443 POP3命令原始码 454
1444 POP3会话实例 459
145 实例分析与程序设计 460
1451 总界面设计 460
1452 SMTP客户端设计 461
1453 POP3客户端设计 473
零基础想自学编程,可以推荐什么书籍或程序吗 编程这个东西自学有一定难度,因为你无法在短时间内体会到它的实际用途,所以一大批人会半途而废。就算你学会了C语言,你会发现你照样做不出东西,忙碌了半天,也只会在黑乎乎的控制台上显示些字符。所以你还得学习其他知识,像SQL。
想要以最短时间体会到代码的作用,那莫过于学习前端 HTML 了,配合CSS,你会立马写出几个静态页面,然后沾沾自喜,有种成就感。然而这并没有什么卵用。前端还需要学习一门叫JavaScript的语言,JavaScript才是编程语言,HTML和CSS只能叫做页面设计,类似美工。
而你想要学习JavaScript时,你就得明白什么叫编程,像是数据类型、函数、各种判断循环语句,这时你学起来就会感觉很吃力(当然也能学会,我就是没接触过C语言就直接学了前端了)。
真正的编程入门级语言是C语言,为什么要先学C语言呢?这时你得明白编程语言的历史发展。C语言的前身是B语言,B语言由贝尔实验室开发。B语言写出了世界上第一款 *** 作系统Unix,沿用至今,比如银行的取款机和大型商务机就是用的Unix。后来由Unix 进化出了linux *** 作系统。这款 *** 作系统一直应用于服务器,而Windows *** 作系统是由C语言写的。暂且不谈 *** 作系统。
C语言往后发展就有了C++ 这些都同属贝尔实验室开发。Java是由C++改写而来。C#也是由C++改写而来。所以你会发现C#与Java语法相识。总结一点,这些语言都由C语言而来。只要你学会了C语言,以后你学其他语言就会简单的多。你学C语言就是学了80%的Java。C++又是完全兼容C语言的。所以你可以把C语言看成是祖宗,其他的都是分支。
本人就是自学的。走了很多弯路。因为我一开始就是学的前端HTML。后来才去学的C,不过也没关系,我学会JavaScript后,学C语言就轻松很多。
说了这么多言归正传,如何自学编程,其实就是如何自学C语言。我认为最好是找教学视频来看。个人推荐 : 郝斌c语言180个视频。
网上很多人力推《c语言程序设计 谭浩强》这本书,你可以去看看。这是大学计算机专业必备教程。也是C语言入门书籍。反正看书我是看不进去的。
一句话,这些语言都大同小异。真正重要的是编程思想。就是如何通过语言来实现解决问题的思路。
应该先学C语言,它是C++的基础课程,我们就是这么学过来的,刚学完C++,如果你要学C++,我们的教材就很好,就是C语言程序设计基础与应用,清华大学出版社出版的,书皮是红色的,挺基础的,对于初学者先学习C++就难了
零基础自学编程,先学什么语言,请推荐相关书籍完全零基础的话,建议学做网页吧,比较简单。书籍的话,先计算机基础,然后就学一些web前端的东西。
请问自学编程零基础入门看什么书籍好?当然学习C语言入门,看C语言的书,我是大学计算机专业的,师大987奇巧300杂项192,提出数字,能Q,共同进步
零基础想自学编程 请问你想学什么语言,我推荐C语言,最接近底层的高级编程语言,我学了很多的计算机编程语言,最爱的还是C语言,最酷最炫。
入门级的书籍我推荐《C primer》老外写的,可能有一定难度。谭浩强的C语言程序设计是国内不错的入门书。
进阶的书包括《C缺陷与陷阱》《C专家编程》,都是老外写的。
编程零基础,想自学Python语言,有什么适合的教材或者书籍推荐码?
简明python 教程入门错相关我文资料算少我两前搜集百MPYTHON教程相关资料
零基础学编程求推荐好书 编程这个概念很大,不同领域需要学习的编程语言不同。应该先从你兴趣开始,有兴趣再决定编程领域,有了编程领域在决定语言不同的语言对应着不同编程领域,只有确定这些信息了,才知道要看什么书籍。如果你要学完那是有点不现实
因此你要回想一下你兴趣来源是什么比如喜欢做黑客,喜欢研究反病毒,喜欢为Windows桌面开发一些实用的小软件等等要分析好兴趣来由,在决定你的发展方向,就好了比如你喜欢为WINDOWS开发软件,那么 C语言是必备基础,学好好了然后在扩展一门面向对象的语言比如C++ C# JAVA 等这些是不错的选择。然后光有语言不行,为了软件的质量保证,还需要研究一下系统理论基础,这样你的软件才能做到对系统的作家兼容性和获取最佳性能。
也可百度一下, 80x86汇编小站 这个网站里面有几篇关于编程入门文章或许会对你有帮助, 或者 你直接联系 这个站长 跟他交流编程方面的事情
我觉得应该根据你的工作需要或者说你的发展方向而定。基本上两大类吧:C/C++和Java。比如,如果你要做企业级应用的你应该学习Java和C#;如果你想做嵌入式,那么应该学好C语言;其他情况下,在你不知道要做什么之前你可以选择学习C/C++。学会这两大类中的一类,对于你学习其他语言都将是比较轻松,包括脚本语言,动态语言„„呵呵,这里想就自己的学习经历和情况给大家一个建议,仅供参考。
零基础怎么自学编程 第一:硬件保证,首先你应该具备一台电脑,不管是笔记本还是台式,也不管性能高低,性能对前期学习编程几乎无任何影响,就入门来看, *** 作系统还是首选windwos或者mac
第二:有xx语言的入门本书,纸做的,具体xx语言是哪种语言,后面我们再讨论这个问题。虽说现在铺天盖地的都是电子书了(保留这句话的确定性),到处是扫描版,还高清呢,但我还是推荐看纸做的书,好处有两点,其一是便于携带,可以随时翻阅;其二是避免眼疲劳,我不信你一直晚盯着显示器看电子书眼睛不会酸;还有一点,尊重图书作者的版权。
第三:时间保证,如果你每天都有一大堆事等着你去处理,先去处理那些事吧,处理完后把剩余时间划出一整块的给编程,进行随时可能被打断的学习
–1>去了解计算机的基本组成,计算机的发展史和编程的发展史,看起来和编程没什么关系,潜在的影响还是十分大的;
–2>选择一门简单的语言作为入门语严;
–3>学会使用搜索引擎;
–4>知道如何看书;
–5>要”像”个高手;
–6>应具备的学习态度;
选定方向
编程的世界是多元纷繁的,大的方向就分前端开发、后端开发、移动开发、云计算、数据处理、智能硬件、物联网、虚拟现实等等,光编程语言都几十种。如果没有做过功课,贸然进入只会分分钟懵逼。所以最好是根据自己的兴趣爱好再结合市场前景,先选定一个方向,再选择一门语言,然后头也不回的深深扎进去。
我当初开始自学编程的时候,因为工作时学了点Linux,就准备学Linux。Linux没学几天,发现游戏编程的Unity 3D挺好玩的,就转学Unity 3D。Unity 3D学了段时间又觉得大数据很火,感觉接下来是大数据的时代,要跟上时代的脚步,然后又去学习Python。后面才意识到自己在移动应用上面有极大的兴趣并有一些自己的想法,再加上本人很喜欢Google,遂最终决定好好学习Android移动开发。
如果自己对自己兴趣爱好没有深刻的认识,没有明确的学习目标,只是一味茫然的去尝试,最终只会像猴子掰玉米一样,不但浪费了自己宝贵的时间,还会一无所获。
####制定学习目标计划
选定了方向之后,剩下的就是朝着目的努力前进了。自学的过程是枯燥乏味的,也没有人陪伴督促,所以要想自学有一定成果,除了要有清晰明确的目标计划,还要有很强的自我约束能力,还要善于自我及激励。不然很容易自由涣散,三天打鱼两天晒网,看起来花了不少时间,实际上没学到什么。
我开始的时候就是凭兴趣漫无目的的学习,结果发现收效甚微,于是才制定学习计划,开始系统的学习。我先是学习了JAVA基础语法,然后将整个Android开发涉及到的所有知识面简单快速的学习一遍,这样对整个体系框架有一个全面大概的认识,然后在详细具体的学习每一部分,尽量搞明白其中的实现逻辑和原理,以达到掌握知识的目的。最后开发练习的时候再根据自己要实现什么功能,去查相关的资料。
优化学习方式
一、做好笔记,记录经验
我们大多数人并没有过目不忘的神技,很多时候我们学了也不一定马上掌握,需要过后花时间慢慢领悟,而且还有忘掉的风险,所以对于重要的知识点都要做好笔记。
编程的过程中总会遇到各种各样的问题,比如编程环境的配置,常用的快捷键,编程过程中的错误、异常,软件更新问题等等。这些问题往往会不只一次出现,所以我们面对这些问题都是如何解决的,一定要记录下来,一是增加自己解决问题的经验,而是以防下次出现。
我做笔记记录的方式:
截图
拍照
思维导图
写Word文档
除了最初用纸质笔记本做过笔记,后面都是用上面的方式。用电子的方式方便快捷易于分享,而且我还能传到手机上,利用其它时间随时随地阅读。
二、认认真真敲代码
二、认认真真敲代码
二、认认真真敲代码
编程没有捷径,只有勤奋努力。
三、多看官方文档,外文资料
互联网是一个更新迭代很快的行业,所有编程语言都会不断的更新新功能和修复旧Bug,网上查的资料很有可能是旧的解决方案,现在已经不适用了。所以最好最快的方法就是查看官方文档。
毕竟互联网技术还是国外发展起来的,所以在很多技术问题方面,人家还是有优势的。有些问题在国内不一定能找到答案就去外网找。
四、进入行业圈子
只有进入行业圈子与其他人交流,你才了解最新的行业动态,才知道自己需要更新哪些技能。最重要的是有了这群人,自己遇到问题解决起来嗖嗖的,那速度才叫“倍爽儿”。
进入行业圈子的方式:
混迹各行业网站论坛个人技术博客
一般在搜问题时很容易就搜到这些网站
关注各种行业话题和人
比如知乎、微博、微信公众号等
QQ群、微信群
交流基地,技术后援团
Github
互联网圣地,行业大圈子就在这。
五、动手做项目
我们学习编程的最终目的就是用所学的做出具有一定功能的项目,而做项目又是最好的学习和巩固知识的方式。如果前期能力不足就先做一些简单的功能模块,一步一步慢慢来,不要一开始就要实现各种酷炫炸天功能,遇到不会的就在网上查, 现在互联网这么发达,获取资源也及其方便。而且开发前也最好在网上查一下有没有已经成型的框架或模板,编程界有一句很流行的话“不要重复造轮子”,什么都自己做一是很耗费时间,二是自己技术能力不足还可能留下不少坑。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)