一、概念
七层网络模型
TCP协议和UDP协议
三次握手
四次挥手
IP地址
IP地址是互联网中的唯一地址标识,本质上是由32位二进制组成的整数,叫做IPv4,当然也有128
位二进制组成的整数,叫做IPv6,目前主流的还是IPv4。
查看IP地址的方式:
Windows系统:在dos窗口中使用ipconfig或ipconfig/all命令即可
Unix/linux系统:在终端窗口中使用ifconfig或/sbin/ifconfig命令即可
端口号
特殊的端口:
HTTP:80 FTP:21 Oracle:1521 MySQL:3306 Tomcat:8080
网络编程需要提供:IP地址 + 端口号,组合在一起叫做网络套接字:Socket。
1、try-catch-finally
2、
注意:
子类重写的方法不能抛出更大的异常、不能抛出平级不一样的异常,但可以抛出一样的异常、更小
的异常以及不抛出异常。
3、自定义异常
可以不用序列化???
public class AgeException extends Exception {
static final long serialVersionUID = 7818375828146090155L; // 序列化的版本号 与序列化操作有关系
public AgeException() {
}
public AgeException(String message) {
super(message);
}
}
二、基于tcp协议的编程模型
1、编程模型
服务器:
(1)创建ServerSocket类型的对象并提供端口号;
(2)等待客户端的连接请求,调用accept()方法;
(3)使用输入输出流进行通信;
(4)关闭Socket;
客户端:
(1)创建Socket类型的对象并提供服务器的IP地址和端口号;
(2)使用输入输出流进行通信;
(3)关闭Socket;
2、常用类和方法
(1)ServerSocket类
java.net.ServerSocket类主要用于描述服务器套接字信息(大插排)。
常用的方法如下:
方法声明 | 功能概述 |
---|---|
ServerSocket(int port) | 根据参数指定的端口号来构造对象 |
Socket accept() | 侦听并接收到此套接字的连接请求 |
void close() | 用于关闭套接字 |
(2)Socket类
java.net.Socket类主要用于描述客户端套接字,是两台机器间通信的端点(小插排)。
常用的方法如下:
方法声明 | 功能概述 |
---|---|
Socket(String host, int port) | 根据指定主机名和端口来构造对象 |
InputStream getInputStream() | 用于获取当前套接字的输入流 |
OutputStream getOutputStream() | 用于获取当前套接字的输出流 |
void close() | 用于关闭套接字 |
客户端 Socket 与服务器端 Socket 对应, 都包含输入和输出流。
客户端的socket.getInputStream() 连接于服务器socket.getOutputStream()。
客户端的socket.getOutputStream()连接于服务器socket.getInputStream()