资源描述:
《网络编程学习小结》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、网络编程学习小结几种网络编程方式:ISAPI、CGI、WinInet、Winsock它们之间的区别:1)ISAPI主要是开发基于浏览器客户端与服务器端程序。效率比CGI方式高,而且也扩展了CGI没有的一些功能。(基于TCP/IP模型中的应用层)2)CGI主要是开发基于浏览器客户端与服务器端程序。(基于TCP/IP模型中的应用层)3)WinInet主要是开发客户端程序。(基于TCP/IP模型中的应用层)4)Winsock主要是基于socket来开发客户端与服务器端程序。(基于TCP/IP模型中的各层)要想开发低层
2、协议的程序的话就要了解协议的报文格式。网络基础知识:网络硬件数据通讯原理(详见http://download.csdn.net/source/1196517)OSI七层网络模型与TCP/IP四层网络模型(详见http://bbs.51cto.com/topic/thread-396621.html)网络原理和协议(详见http://www.cnpaf.net/)Winsock网络编程:建议,把机械工业出版社出的《Windows网络编程技术》看N遍后,再利用MFC或者SDK编写一些小的通信例程,然后编写较大规模的
3、网络程序,最后你就明白了网络编程了!《Windows网络编程技术》专门讨论Windows网络编程技术,覆盖Windows95/98/NT4/2000/CE平台。内容包括NetBIOS和Windows重定向器方法、Winsock方法、客户端远程访问服务器方法。本书论述深入浅出、用大量实例详解了微软网络API函数的应用。《TCP/IP详解,卷1:协议》是一本完整而详细的TCP/IP协议指南。描述了属于每一层的各个协议以及它们如何在不同操作系统中运行。《网络通信编程实用案例精选》是一本介绍利用vlsuaIC++进行网
4、络通信程序开发的书籍。书中精选了大量网络实例,涵盖了本地汁算机网络编程、局域网网络通信编程、IE编程、网络通信协议编程、串口通信编程、代理服务器编程和高级网络通信编程.RFC文档目录:http://oss.org.cn/man/develop/rfc/default.htmACE:ACE自适配通信环境(ADAPTIVECommunicationEnvironment)是可以自由使用、开放源码的面向对象框架,在其中实现了许多用于并发通信软件的核心模式。ACE提供了一组丰富的可复用C++WrapperFacade(
5、包装外观)和框架组件,可跨越多种平台完成常见的通信软件任务,其中包括:事件多路分离和事件处理器分派、信号处理、服务初始化、进程间通信、共享内存管理、消息路由、分布式服务动态(重)配置、并发执行和同步,等等。ACE资料参考:http://docs.huihoo.com/ace_tao/index.html建议在www.codeproject.com、http://www.codeguru.com/网站上找些老外写的网络代码研究研究,最好能参加实际的网络项目,这样能见识更多成熟的网络类库。最好能参加实际的网络项目,
6、这样能见识更多成熟的网络类库。开源网络封装库:ACE,ICE,asio,cppsocket,netclass,poco,SimpleSocket,socketman,Sockets开源下载工具fdm,eMulePlus,eMule开源FTPFileZilla开源服务器Apache网游服务器开源框架GNE,HawkNL,RakNet,SDL_net网络协议分析软件:Sniffer工具Wireshark开源的经典的协议分析工具Wireshark,http://www.wireshark.org/WPE-------
7、抓包Ethereal-------协议分析SockMon5-------抓包及错误分析Windows网络编程细节问题:1.如果在已经处于ESTABLISHED状态下的socket(一般由端口号和标志符区分)调用closesocket(一般不会立即关闭而经历TIME_WAIT的过程)后想继续重用该socket:BOOLbReuseaddr=TRUE; setsockopt(s,SOL_SOCKET,SO_REUSEADDR,(constchar*)&bReuseaddr,sizeof(BOOL));2.如果要已
8、经处于连接状态的soket在调用closesocket后强制关闭,不经历TIME_WAIT的过程:BOOLbDontLinger=FALSE;setsockopt(s,SOL_SOCKET,SO_DONTLINGER,(constchar*)&bDontLinger,sizeof(BOOL));3.在send(),recv()过程中有时由于网络状况等原因,发收不能预期进行,而设置收发时