1、《计算机组成原理》(熟悉)
2、《数据结构》(掌握)
3、《 *** 作系统》(了解->熟悉)
4、《C语言程序设计》(掌握)
5、《编译原理》(了解原理)
6、《汇编语言》(了解)
7、《计算机网络》(了解)
8、《软件工程》(了解)
9、《关系数据库》(熟悉)
10、《The C++Languege 》(掌握)
11、《面向对象设计》(掌握;结合C++学习)
window程序设计
深入浅出MFC
方法/步骤分步阅读
1
/6
在本地连接 属性里 internet协议 双击进入 IP地址也不要填 点 自动获取IP地址 下面点 自动获得DNS服务器地址就可以了。
2
/6
本地连接等很长时间才出来说明本机在找IP地址 给你讲个通常的IP 一般都没有问题的 IP填192168156 掩码填2552552550 。
3
/6
默认网关填19216811 DNS填写你要看下你们当地的DNS服务器地址 每个省的DNS是不一样的 。
4
/6
获取本地网关实现过程:WSAStartup()。Windows Sockets Asynchronous的启动命令,Windows下的网络编程必须先启用本命令,不然,后续的 *** 作都会报错:10093:WSAStartup() 调用未成功执行过。
5
/6
gethostname()获得本机名。gethostbyname()获得本机网络信息,存储到struct hostent 指针中,返回给调用者。从struct hostent结构体信息中,获取ip地址,转换成字符串输出。
6
/6
在没有路由器的情况下,两个网络之间是不能进行TCP/IP通信的,即使是两个网络连接在同一台交换机(或集线器)上,TCP/IP协议也会根据子网掩码(2552552550)判定两个网络中的主机处在不同的网络里。
注意事项
先学Windows底层网络编程,在去学一些比较高级的语言的网络编程,比如说C#、Java体会一下强大的现代化的网络编程工具。
Windows底层网络编程与C语言差不多,只不过调用了很多的API函数,同时学习Windows可以知道一些系统的底层原理,还可以加强C语言的编程能力。
哈哈,不说了。
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
最近很多人都在问如何学习编程。我觉得学习编程最重要的是入门,如果你入门的时候有一个好的方法和思路,打下比较扎实的基础,对今后的编程工作是很有益处的。即使在学习新的编程语言也无所谓,因为它们有很多相通之处,可以相互借鉴。
我认为可以先学习一下pascal,这个语言比较严谨,适合初学者。pascal它被称为教学语言,结构严谨,不像C语言那么灵活,易于理解和学习。然后可以继续学习C语言,这个语言比较灵活。有了pascal的基础,在进行C语言编程就不会因为C语言的灵活而有问题。后面的就可以学习VC什么的了。
C语言的书推荐谭浩强的,比较好。
我当时学习pascal和C语言的时候是将书后的习题都做了一遍,感觉效果很好。
当然了,学习什么语言也要看你具体准备从事什么行业。例如你要进行嵌入式开发,C就是很好的选择,如果是Windows开发,那么VC就不错。还有数据库方面的开发、网络开发等等。不同的语言适合不同的方面。要看自己的选择的,呵呵。
还有很多人说自己的基础很差,甚至中学毕业什么的。其实这个并不重要,比较说英语,在计算机语言里所用到的单词量很少,而且都是常用词,经常使用就记住了。当然,如果你要看原文资料或者帮助的话,专业词汇比较多,不过在金山词霸的帮助下,经常看,也是没什么大的问题的。至于数学什么的,其实数学只是培养你一个逻辑思维能力,在初学编程的时候影响不是很大。况且,作为一个基础编程人员来说,上面还有系统分析师、项目经理,他们会把需求分析、概要设计和详细设计做好的,你只要按照文档写代码就OK了。不过,要上更上一步的话,其他基础知识就非常重要了,毕竟你不能写一辈子代码。
在你学习好C语言以后,个人建议好好学习一下数据结构和软件工程。这两门对你的水平提高都是很有帮助的。特别是软件工程,它能够使你按照科学的工程方法进行软件开发,对今后的发展很有好处。
只是一家之言,有不到之处,还望见谅!
你参考下
VB~VC~VF~C~C#~C++~JAVA~NET~这些都是编程
ASP~CGI~PHP~JSP这些是WEB编程。。
虽然都是编程,但编出来的程序可是不一样的。
目标是什么?开发?创业?还是去公司上班?还是业余爱好?
如果想业余编小程序,推荐VB~VC~容易上手。简单。也蛮强大。
如果想学好了去企业上班,推荐C++~~~net~~~JAVA之类的大型项目开发。
如果想做网站,就学ASP~CGI~PHP~JSP,这4个就JSP最最最难,先学ASP。
编程语言很多,但是目的都是想写出好的程序,只要学精了一个就有钱赚,一上来不要要求太高
我推荐你学三种编程语言,因为推荐你学是有原因的。
第一:先学习好C语言,这个是学所有编程语言的基础。也是将来去考国家证书的必须要考的一门。
第二:学好java,因为java在目前来说,占领地位是排第一位的。而且工资待遇也不错。市场需求占有率高达50%以上。或者学习NET,因为NET出来还不算太久,但是就因为是微软出的东西,所以市场占有率也已经达到了48%了,况且NET比java要容易上手。两者之一,你可以选择一个。学java就往jsp工程师方向发展,学NET就往ASPNET方向发展吧。
第三:顺便学一门数据库的技术。因为开发的时候,难免会要和数据库打交道。懂总比不懂要好。一般就学SQL就行了。ORACLE一般只适应于大型公司
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)