1.5 通信协议
协议:约定,就好比我们现在说的是普通话
网络通信协议:速率,传输码率,代码结构,传输控制....
问题:非常的复杂
大事化小:分层
最常用的TCP/IP协议
重要:
TCP:用户传输协议
UDP:用户数据报协议
出名的协议:
ICP
IP:网络互联协议
TCP和UDP的对比:
TCP:相当于打电话
连接,稳定
三次握手,四次握手,最少要交流三次才能建立连接。
断开至少要交流四次才能完全断开。
客户端,服务端
传输完成,释放连接,效率低
UDP:相当于发短信
不连接,不稳定
客户端,服务端:没有明确的界限
不管你有没有准备好,都会发给你...
导弹
DDOS:洪水攻击饱和攻击
1.6TCP
客户端:
1.连接服务器Socket
2.发送消息
服务端:
1.建立服务的端口 ServerSocket
2.等待用户的连接 accept()
3.接受用户的消息
客户端
import java.io.IOException;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;
//客户端
public class TestClientDemo01 {
public static void main(String[] args) {
Socket socket=null;
OutputStream outputStream=null;
//我要知道服务器的地址,端口号
try {
InetAddress serverIP=InetAddress.getByName("127.0.0.1");
int Port=9999;
//创建一个scoket连接
socket = new Socket(serverIP,Port);
//发送消息 使用IO流
outputStream = socket.getOutputStream();
outputStream.write("你好,欢迎学习java".getBytes());
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
if (outputStream!=null){
try {
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (socket!=null){
try {
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
服务端
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
//服务端
public class TestServerDemo01 {
public static void main(String[] args) {
ServerSocket serverSocket=null;
Socket socket=null;
InputStream inputStream=null;
ByteArrayOutputStream boas=null;
try {
//我得有一个地址
serverSocket = new ServerSocket(9999);
//等待客户链接过来
socket=serverSocket.accept();
//读取客户端的消息
inputStream = socket.getInputStream();
//管道流
boas = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len;
while ((len=inputStream.read(buffer))!=-1){
boas.write(buffer,0,len);
}
System.out.println(boas.toString());
} catch (IOException e) {
e.printStackTrace();
}
if (boas!=null){
try {
boas.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (inputStream!=null){
try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (socket!=null){
try {
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (serverSocket!=null){
try {
serverSocket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}