基于Java语言实现Socket通信
由于近日项目需求,需要在服务器中增加Socket通信的功能,接收硬件设备发送的心跳包和相关数据,因此又重新对Java的网络编程进行了复习,根据项目的实际情况做了简化的编程,实现了简单的通信过程。
1. Socket通信原理
源IP地址和目的IP地址以及源端口号和目的端口号的组合称为套接字。其用于标识客户端请求的服务器和服务。
以下是通过Socket套接字实现客户端与服务器端通信的示意图:
在实际应用中,客户端会通过访问服务器的IP和PORT连接到服务器端,这个过程在服务器和客户端之间创建一个Socket,然后通过I/O数据流实现数据传输,也就是Socket的通信过程。
2. 服务器端
服务器端模拟接收硬件设备传输的心跳包(一个长度为10的字节数组),服务器端会获取到心跳包以及硬件设备的地址和端口号。
public class Server extends Thread{
//服务器端口号
private int port;
private ServerSocket server = null;
public Server(){
//创建一个服务器,同时可以接收10个设备发送的数据
server = new ServerSocket(port,10);
System.out.println("Socket服务器启动,开始接受数据");
}
@Override
public void run(){
while (true) {
Socket socket =