如何学习.net的网络编程
最近想研究一下网络编程和多线程,可是发现没有什么好的学习教材,所以就来CSDN上请大牛们,提供一下学习资料,多谢!
推荐几本电子书,或者是视频资料,谢谢!
------解决方案--------------------使用專業控件,省事
------解决方案--------------------Web Service,前端时间我也准备看的
------解决方案--------------------如果你要学习所谓“socket”通讯,那么说实话和.NET关系不大,你得了解TCP协议(比如三次握手、滑动窗口机制)IP协议(数据帧格式、路由、广播、交换)、UDP协议等等基础知识,这不是看看简单视频或者几天就能速成的。大学的时候,我看过谢希仁的《计算机网络》,这本书是相当不错的。至于多线程,同样的需要很深入的背景知识,以及长期积累的手感和悟性。表面上看,线程同步的API就那么几个,但是控制并发、同步、互斥和锁,是非常需要技巧,这些是无法所谓书籍和视频教授的。
------解决方案-------------------- 跟楼主有同样想法,顶一个
------解决方案--------------------计算机网络的大学教材看过两遍没有?
其它东西都堆在基本原理上。
------解决方案--------------------一方面,一些实用新技术要及时跟进,例如WCF之类;另一方面,《TCP/IP详解》的三卷书应该是每个程序员必读。
------解决方案--------------------.net封装的很好,甚至把IOCP整个都封装成了傻瓜式的普通几个方法(例如在TcpListener中4、5个异步方法)。
想把它当作皮毛使用,也很容易(培训机构就这样毒害那些软件大专生的);想要用它专业地搞开发,你把90%以上时间去认证学习研究原理就好了。
------解决方案--------------------建议从 TCP 和 UDP 开始,大多数的应用层通信协议都是基于这两个的。
我比较偏向于实用型的,像那些 TCP/IP 详解之类的东西,就算你全部看完,到头来还是写不出基于网络的通信程序,这好比把操作系统原理看完写不出操作系统的道理一样。
可能是非科班出身,因此我很反感说到 TCP 就会把 TCP 三次握手、大学的网络教科书搬出来。曾经就被人问过 TCP 几次握手,当时很生气地反问道,TLS 要经过几次握手才能建立连接?这人当场就懵了!
当然了,如果想了解数据是如何在网络当中传送的话,那可以看看这些书,或者是关于这些协议的 RFC 文档。最最重要的还是要实践,比如使用 Wireshark, SmartSniff 之类的工具抓取流过网卡的数据包,通过这些数据包对这些通信协议握手连接过程,以及数据通信报文的组织格式有更形象地了解。
另外,做网络通信应用的话,还要学会如何设计二进制的、文本格式的数据通信协议。
------解决方案--------------------
------解决方案--------------------我一直觉得网络通讯是一块难啃的骨头,涉及很多抽象的概念!
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------不管如何实践,最后总得回归到原理,还是基本原理...
如P哥所说,除非就是不动脑筋玩些皮毛。
书呆子之所以成为书呆子,是因为人而不是因为书。