网络基础知识
网络的分类:
(按照规模)
局域网(LAN): 指在一个较小地理范围内的各种计算机网络设备互连在一起的通信网络,可以包含一个或多个子网,通常局限在几千米的范围之内。
城域网(MAN): 主要由城域范围内的各局域网之间互连而构成的。
广域网(WAN): 是由相距较远的局域网或城域网互联而成,通常是除了计算机设备以外,还要涉及一些电信通信方式。
OSI分层模型和TCP/IP分层模型
IP地址和端口号
IP地址
用于标志网络中的一个通信实体,这个通信实体可以是一台主机,也可以是一个打印机,或者是路由器的某一个端口。
IP地址被分成了A、B、C、D、E五类。
A类:10.0.0.0 —— 10.255.255.255
B类:172.16.0.0 —— 172.31.255.255
C类:192.168.0.0 —— 192.168.255.255
IP地址是一个32位的二进制数,它通常采用点分( 十 )进制表示。
在TCP/IP四层协议中,IP协议位于哪个层次( 网络层)
端口
是一个16位的整数,用于表示数据交给哪个通信程序处理。
因此,端口就是应用程序与外界交流的出入口,它是一宗抽象的软件结构,包括一些数据结构和I/O缓冲区。
端口号可以从0到65535,通常被分为三类:
公认端口:0 — 1023 ;注册端口:1024 — 49151 ; 动态/私有端口:49152 — 65535
注意:
在TCP/IP四层协议中,端口位于传输层
B.
端口号可以从0到65535取值
C.
自定义端口应该避免从0-1023中取值,因为这些端口是熟知端口
D.
端口对应着一个应用程序,通过端口号,主机间才能进行通信
TCP协议网络编程
1、使用ServerSocket创建TCP服务端
package 网络编程;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public static void main(String[] args) {
try {
ServerSocket server =new ServerSocket(9999);
while(true) {
Socket client =server.accept();
if(client!=null) {
System.out.println("有客户端链接上来了!!!");
}
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
2、使用Socket创建客户端
package 网络编程;
import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;
public class Client {
public static void main(String[] args) {
try {
Socket clicent =new Socket("127.0.0.1",9999);
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
TCP协议是一种面向连接的、可靠的传输层协议。关于TCP协议通信过程哪些说法是正确的?( )
服务器端使用ServerSocket类,提供服务器端的端口号
服务器端使用ServerSocket类的accept方法获得服务器端的Socket
服务器端和客户端成功连接后,就建立起2个Socket对象的连接,双方进行通信。
通信结束,关闭输入输出流,以及Socket。