网络编程(基础)

来源:互联网 发布:php地图定位源代码 编辑:程序博客网 时间:2024/05/22 10:31

前言

   网络编程博大精深,一直对此心存向往。在这几个月学习java的过程中,初步了解了一点相关知识。不敢说入门,只能说是看到了那扇门。希望有一天,可以真正地体会到门后的世界。

网络编程基础

网络模型: osi参考模型(七层),TCP/IP参考模型(四层)


网络结构

C/S(client/serve)
特点

1.客户端与服务器端都需编写对应的程序。
2.开发成本较高,维护较为麻烦
3.表现力较为丰富。
4.客户端可分担一部分运算。

B/S(Browser/serve)
特点:

1.客户端被浏览器取代,故只需开发服务器端。
2.开发成本较低,维护较为简单。
3.所有计算须由服务器端负责。


网络通讯要素

IP地址
    网络中的每一个用户都有一个标识名,这个标识名是由四个由0至255的数字组成。但是因为这样长串的数字不容易记忆,故出现了**域名**。这类似于手机中的通讯录,手机号码是“ip地址”,人的名字就是“域名”。这么多的域名也不太好管理与使用,于是出现了所谓的“**域名解析器”(DNS)。**
端口号

有效的端口号:0至65535
系统使用或保留的端口号:0至1024

传输协议
    以下是个人理解,网络编程的主题就是“数据传输”。传输数据的一方和接收数据的一方会因为某种需求(如效率,安全等),对数据的传输形式和方法达成一定的共识。这个共识就是传输协议。

目前接触到的,也是java中网络编程基础中较重要的两种协议:UDP协议,与TCP/IP协议


UDP协议

特点

1.不需要建立虚拟的数据连接。
2.效率较高,但传输不可靠。
3.传输容量有限制。

java中的UDP

常用类:
DategramSocket(用于建立Socket)
DategramPacket(用于解析或创建数据包)

可通过DategramSocket建立Socket,分别实现客户端与服务器端的功能。


TCP/IP协议

特点

1.需要建立专用的虚拟连接。(三次握手)
2.传输可靠,且数据容量较大。

java中的TCP

常用类:
Socket:用于创建客户端的socket服务
ServerSocket:用于创建服务器端的socket服务


其它

URL 与 URI
URI(相对地址):

统一资源标识符,用来唯一的标识一个资源。

URL(绝对地址):

统一资源定位器,它是一种具体的URI,用来标识一个资源,而且还指明了如何找到这个资源。

Socket(套接字)

网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。常用来向网络发出请求或者应答网络请求。

0 0