名词
互联网: 点对点连接
万维网: WWW.
物联网:
ip : 计算机在网络中的地址
端口: 软件在计算机中的地址
协议: 计算机 与 计算机交流的规则
iP
概念:
计算机在互联网中的地址
分类:
IPV4:
取值: 0~ 255 , 0~255 , 0~255 , 0~255
注意: 0 , 1 , 255 有特殊意义,不要使用
IPV6:
查看自己电脑上的ip地址:
利用dos 命令,ipconfig 查看
Java中ip类对应的类InetAddress
getLocalHost(); 获取本机地址
getByName(); 通过指定ip 或 设备名查找计算机地址
getAllByName() ; 获取指定ip 设备名 ,网址对应的所有的地址
getHostAddress() ; 获取调用该方法对象的ip 地址
getHostName() ; 获取调用该方法的对象中的设备名称
特殊地址:
127.0.0.1 属于本机地址
端口
取值: 0~65535
注意:
一般 0~ 2048被系统占用
常用端口: 8080 3306 80 8000
协议
OSI七层模型
应用层 表示层 会话层 传输层 网络层 数据链路层 物理层
TCP
面向有连接
特点:
三次握手 ,四次挥手
三次握手:
封装对方所在地址
判断是否连接成功
沟通
四次挥手:
封装结束
连接完成
沟通结束
断开
编程:
服务器:
创建服务器Socket
等待客户端连接
获取客户端在服务端的映射
通过客户端的映射 获取输入流 与 输出流
.........
客户端:
创建客户端Socket
连接服务器
获取客户端的输入 或者 输出流
......
UDP
面向无连接
特点:
每次传输数据的一部分,不会考虑对方是否接收的到
编程:
接收端:
创建一个接收端的Socket
准备一个数据包,用来接收数据
接收数据
获取数据包中的数据
获取数据包中数据的长度
打印输出
关闭资源
发送端:
创建一个发送端的Socket
准备要发送的数据
准备发送的数据包
发送数据
关闭资源
TCP
2,客户端上传一个文件给服务器,服务器回馈收到了
服务器
1,创建服务器Socket
2,等待客户端连接,获取客户端映射
3,获取客户端映射的输入流与输出流
4,使用输入流获取客户端上传的文件
5,创建一个文件输出流,将客户端上传的文件存储到指定位置
6,使用输出流返回收到了
7,冲刷
8,关流
9,关闭socket与服务器socket
客户端
1,创建客户端的Socket
2,获取客户端的输出流与输入流
3,创建一个文件输入流,读取文件
4,使用输出流输出要上传的文件
5,冲刷
6,使用输入流获取服务器返回的信息
7,关流
8,关闭客户端Socket
public class Client {
public static void main(String[] args) throws IOException {
Socket socket = new Socket("127.0.0.1", 9889);
FileInputStream fis = new FileInputStream("D:\\桌面\\美女.jpg");
OutputStream outputStream = socket.getOutputStream();
InputStream inputStream = socket.getInputStream();
byte[] b = new byte[1024];
int len = 0;
while ((len = fis.read(b)) != -1) {
outputStream.write(b , 0 , len);
outputStream.flush();
}
int read = inputStream.read(b);
String string = new String(b , 0 , read);
System.out.println(string);
outputStream.close();
inputStream.close();
socket.close();
}
}
public class Server {
public static void main(String[] args) throws IOException {
ServerSocket serverSocket = new ServerSocket(9889);
Socket socket = serverSocket.accept();
InputStream is = socket.getInputStream();
OutputStream os2 = socket.getOutputStream();
FileOutputStream os = new FileOutputStream("D:\\美女.jpg");
byte[] b = new byte[1024];
int len = 0;
while ((len = is.read(b)) != -1) {
os.write(b , 0 ,len);
os.flush();
if (len != 1024) {
break;
}
}
System.out.println("文上传文件已经写出~");
os2.write("服务器已经完成".getBytes());
os2.flush();
os2.close();
System.out.println("wan");
socket.close();
}
}
3,让客户端与服务器无限制聊天
4,群聊(思考)