The Client/Server Model
大部分流行的网络程序都是基于C/S 模型。
server等待client来连接,client初始化一个连接,server给出回应,建立连接后,开始相互通信。一般是server端保存了大量数据,client请求,server返回数据,server端都比较强悍,或者server端配置一般,但建立在云端。
并非所有网络程序都符合c/s模型,比如游戏中的双方均等得发送和接受数据,这种类型的连接叫“peer-to-peer”(p2p),电话网络就是典型的p2p,每部电话既能接电话也能打电话。(c/s模型中,server端就是被动地等待client来连接和请求数据,不会发生server端主动请求连接client的情况)
java没有直接的api可以建立p2p连接,但可以通过其他方法达到,最常见的是既作client又作server,或者所有点都连接到一个中间服务器上,由中间服务器来转发数据。
Internet Standards
2大标准和协议制定组织:
IETF: Internet Engineering Task Force
W3C: World Wild Web Consortium
这2个组织相映成趣,比较有意思。IETF呢,比较民间,相对不正式,接受任何感兴趣的组织和个人的提议,它的标准基于“趋势和已有大范围运行的代码”,它趋向于跟随实际而不是领导实际,IETF的标准有Tcp/Ip,MIME,SMTP。W3C呢,正好相反,是个严格的只接受付费公司而不接受个人的组织,它趋向于在实际实现之前制定标准,W3C的标准有HTTP,HTML,XML.
IETF的公布的标准叫做“Requests For Comments” (RFCs)。可在这里找到他们的标准http://www.faqs.org/rfc/ and http://www.ietf.org/rfc.html 。大部分RFCs都是技术性的,晦涩难懂的,但却是真实的第一手的信息。