JAVA高级05--网络编程--要点总结

JAVA高级05_网络编程


1.IP地址和Port(端口号)
本地回路的IP地址:127.0.0.1,特殊IP地址,不经过网卡。没有和网卡绑定。
Port两个字节,不同的应用程序使用不同的端口进行通信。0—65535,0—1023之间的端口数是用于一些知名的网络服务和应用。发送数据包时必须指明端口号。
2.Socket是网络驱动层提供给应用程序编程的接口和一种机制。Socket在应用程序中创建,通过一种绑定机制与驱动程序建立关系,告诉自己所对应的IP和Port。
3.网络数据的收发都是最终经过驱动程序(网卡)来完成的。
4.DatagramSocket类用于UDP通信。ServerSocket类用于TCP通信的服务器端。Socket类用于TCP通信的服务器和客户端。
5.如果计算机只有一个IP地址,通常就不会去指定IP地址,直接使用系统默认。而如果计算机有多个IP地址,就应该指定确定的IP地址。
6.如果把DatagramSocket比作创建港口的码头,那么DatagramPacket就是发送和接受数据的集装箱。
7.InetAddress是用于表示计算机IP地址的一个类。
8.在命令行中通过输入start命令可以重新打开一个窗口,而且此窗口的设置将和原窗口保持一致,包括光标位置和classpath等。
9.UDP编程实践:

10.广播数据的IP:192.168.0.255,表示在192.168.0这个网段中的所有用户。广播IP需要通过子网掩码和主机IP进行计算,不一定就是192.168.0.255,内容涉及到计算机网络,比较复杂,以后有时间再看。
11.只有UDP才能发送和接受广播数据。
12.用UDP编写的聊天程序


13.私有IP通过网关代理上网的原理,端口映射表。私有IP的某个端口通过映射表和网关的某个端口对应,然后又网关和外部网通信。端口映射表是动态的,只有私有IP先向外发送数据,才会临时建立这个映射表。
14.TCP客户端程序与TCP服务端程序的交互过程:1.服务器程序创建一个serversocket,调用accept方法等待客户来连接。2.客户端程序创建一个socket并请求与服务器连接。3.服务器接收请求并建立一个新的socket和该客户建立专线连接。4.建立了连接的两个socket在一个单独的线程(由服务器程序创建)上对话。5.服务器开始等待新的连接请求,当新的连接请求到达时,重复步骤2和步骤5的过程。相当于114总机台接受客户打电话的情况一样。
15.在Dos窗口下输入telnet,可以调用windows系统自带的客户端,命令格式是“telnet IP地址 Port”,从而可以和服务器程序进行通信。
16.编写TCP服务器端程序,利用telent和服务器之间进行通信。

17.TCP服务器程序要想能接受多个客户端连接,需要循环调用ServerSocket.accept方法。
服务器程序与每个客户端连接的会话过程不能相互影响,需要在独立的线程中运行。
一个线程服务对象与一个服务器端socket对象相关联,共同来完成与一个客户端的对话。
18.使用netstat命令查看端口的使用情况。
19.应用程序协议和网络通信协议的关系。TCP协议好比电话系统,只负责两端的通话,但不能保证一个法国人能听懂日本人的话语。而ftp协议就好比大家约定的一种语言,如英语,以方便大家进行交流。根据网络传输内容的不同,可以有很多应用程序协议,比如http,stmp,ftp等
20.网络编程和asp,jsp的关系:网络编程好比卫星技术,而asp,jsp只是相当于制作电视节目,电视节目靠卫星来传播。不能认为asp,jsp就是网络编程,asp,jsp只是网络编程的应用之一。
21.URL的基本组成:协议,主机名,端口号,资源名。http的默认端口号是80。
22.相对URL:"/a.html", "./a.html", "../../a.html", "a.html".
23.URL编码规则:
--将空格转换为加号“+”。
--对0-9,a-z, A-Z之间的字符保持不变。
--对于所有其他字符,用这个字符的当前字符集编码在内存中的十六进制格式表示,并在每个字节前加上一个百分号“%”。如字符“+”用%2B表示,字符“中”用%D6%D表示。
--对于空格也可以直接使用其16进制编码方式,即%20表示,而不是将它转换成加号“+”。
24.HTTP请求消息。一个完整的请求消息包括:一个请求行,若干消息头,以及实体内容。消息头和实体内容可以没有。
25.HTTP响应消息。一个完整的响应消息包括:一个状态行,若干消息头,以及实体内容。消息头和实体内容可以没有。
26.HTTP消息头:
Connection:用于指定处理完本次请求/响应后,客户端与服务器是否继续保持连接。设置值可以为keep-alive和close。默认为keep-alive。
Accept-Language:客户机期望服务器返回的文档所使用的国家语言。可以指定多个语言,用逗号分隔。
Content-Length: 用于表示实体内容的长度(字节数)。
Range: 用于指定服务器只需返回文档中的部分内容及内容范围,有以下几种使用格式:
1) Range:bytes=100-599
2) Range: bytes=100-
3) Range: bytes=-100
Content-Range: 用于指定服务器返回的部分实体内容的位置信息,如: Content-Range: bytes 2543-4532/7898.其中2543-4532指返回从第2543个字节到第4532个字节的内容,而7898指整个实体内容的大小。
27.URL编程实践

你可能感兴趣的:(java)