网络通信要素: IP,端口号,通信协议
网络编程有三个要素分别是
:IP
地址、端口号和通信协议
.
IP
地址(
Internet Protocol Address
)是指互联网协议地址,又译为网际协议地址.
网络中的计算机使用
IP
地址来进行唯一标识
.
在
Windows
系统下,打开
cmd
,输入命令
ipconfig
,按回车即可查看。本地回环地(hostAddress):127.0.0.1 ,它代表设备的本地虚拟接口.
网络通信要素:网络通信协议
传输层协议中有两个非常重要的协议:
传输控制协议TCP(Transmission Control Protocol)
用户数据报协议UDP(User Datagram Protocol)
TCP
•
使用TCP协议前,须先建立TCP连接,形成传输数据通道
•
传输前,采用“
三次握手
”方式,是可靠的
•
TCP协议进行通信的两个应用进程:客户端、服务端
•
在连接中可进行大数据量的传输
•
传输完毕,需释放已建立的连接,效率低
•
在断开时要进行
“四次挥手”
看下面案例:
服务器:
package Demo;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public static void main(String[] args) throws IOException {
//创建服务器
ServerSocket serverSocket = new ServerSocket(9999);
System.out.println("服务器创建成功,等待客户端连接");
//监听客户端
Socket socket = serverSocket.accept();
System.out.println("客户端连接成功");
//接受客户端发送的信息
DataInputStream din = new DataInputStream(socket.getInputStream());
System.out.println("客户端:"+din.readUTF());
//回复客户端
DataOutputStream dout = new DataOutputStream(socket.getOutputStream());
dout.writeUTF("你好,客户");
}
}
package Demo;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;
public class Client {
public static void main(String[] args) throws IOException {
//创建客户端
Socket socket = new Socket("192.168.31.105",9999);
//向服务器发送信息
DataOutputStream dout = new DataOutputStream(socket.getOutputStream());
dout.writeUTF("你好服务器");
//接受服务器信息
DataInputStream din = new DataInputStream(socket.getInputStream());
System.out.println("服务器:" + din.readUTF());
}
}
UDP
•
将数据、源、目的封装成数据包,不需要建立连接
•
每个数据报的大小限制在
64K
内
•
因无需连接,故是不可靠的
•
发送数据结束时无需释放资源,速度快