package com.nbl6.irrigation.util;
import java.io.*;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.SocketAddress;
/**
* 服务端serverSocket配置
**/
public class ServerSocketConfig {
public static String SwitchServerApplication() throws IOException {
// 创建服务
ServerSocket serverSocket = new ServerSocket(19002);
//获取当前服务端IP地址
InetAddress address = InetAddress.getLocalHost();
String serverIp = address.getHostAddress();
System.out.println("TCP服务端启动,当前服务端IP:" + serverIp);
// 监听客户端连接
Socket socket = serverSocket.accept();// 阻塞式监听,会一直监听客户端的连接
SocketAddress ip = socket.getRemoteSocketAddress();
System.out.println("接收到客户端socket:" + ip);
// 获取输入流
InputStream inputStream =socket.getInputStream();
// 管道流
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
int len = 0;
byte[] buffer = new byte[1024];
while ((len = inputStream.read(buffer))!= -1) {
String s = new String(buffer, 0, len);
if ( s.equals("abc") == true) {
System.out.println("接收到正确客户端数据:" + s);
//自定义指令:打开主水泵
String str = "01 05 00 08 FF 00 0D F8";
//获取输出流
OutputStream outputStream = socket.getOutputStream();
outputStream.write(str.getBytes());
outputStream.close();
break;
}
System.out.println("接收到客户端数据:" + s);
}
// 关闭资源
byteArrayOutputStream.close();
socket.close();
serverSocket.close();
System.out.println("TCP服务端已关闭");
return "TCP服务端已关闭";
}
}
2、串口调试助手模拟串口服务器演示客户端访问
3、服务端返回的结果
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)