绝大部分关于socket编程的教程总是从socket的概念开始讲起的
要知道,socket的初衷是个庞大的体系,TCP/IP只是这个庞大体系下一个很小的子集,而我们真正能用上的更是这个子集中的一小部分:运输层(Host-to-HostTransportLayer)的TCP和UDP协议,以及使用这两个协议进行应用层(ApplicationLayer)的开发
即使是socket的核心部分,网络层(InternetLayer)的IP协议,在编程的时候我们也很少会感觉到它的存在——因为已经被封装好了,我们唯一需要做的事情就是传入一个宏
第一节我想介绍的概念就这么多,当然,既然我们已经说了3个层了,我想最好还是把最后一个层也说出来,即所谓链路层(NetworkAccessLayer),它包括了物理硬件和驱动程序
这四个层从底到高的顺序是:链路层--网络层--运输层--应用层
好,说实话我们现在并不清楚所谓TCP到底是什么东东,不过我们知道这东东名气很大
或许你早就知道,另外一个声名狼藉建立在TCP协议基础上的应用程序,它曾经几乎是统治了一个时代,即使是今天,我们依然无法消除他的影响力的——恩,是的,就是telnet
在这个教程中,我使用的环境是DebianGNU/Linux4
传说中的stable-_-
,恩,我是很保守的人
如果你不是自己DIY出来的系统,相信默认安装里面就应该有telnet(/usr/bin/telnet,要是没装就自己aptitudeinstall吧)
telnet可以与所有遵循TCP协议的服务器端进行通讯
通常,socket编程总是Client/Server形式的,因为有了telnet,我们可以先不考虑client的程序,我们先写一个支持TCP协议的server端,然后用telnet作为client验证我们的程序就好了
server端的功能,我