古井使用自身tcp服务
parent
8b8051fc35
commit
2234842c28
@ -0,0 +1,125 @@
|
|||||||
|
package com.zhehekeji.web.service.algorithm;
|
||||||
|
|
||||||
|
import com.zhehekeji.web.config.ConfigProperties;
|
||||||
|
import com.zhehekeji.web.entity.AlgorithmPojo;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
||||||
|
import java.io.*;
|
||||||
|
import java.net.*;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
@Slf4j
|
||||||
|
public class AlgorithmClint {
|
||||||
|
AlgorithmPojo clint(String ip, Integer port, AlgorithmPojo algorithmPojo, List<ConfigProperties.SmokeBoxType> list) {
|
||||||
|
try {
|
||||||
|
Socket socket = new Socket();
|
||||||
|
Map<String, ConfigProperties.SmokeBoxType> map = list.stream().collect(Collectors.toMap(ConfigProperties.SmokeBoxType::getType, k->k));
|
||||||
|
|
||||||
|
socket.connect(new InetSocketAddress(ip, port), 5000);
|
||||||
|
System.out.println("Connected to server");
|
||||||
|
socket.setSoTimeout(10000);
|
||||||
|
|
||||||
|
BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
|
||||||
|
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
|
||||||
|
//修改全局变量
|
||||||
|
updateTaskId(reader,writer,algorithmPojo);
|
||||||
|
Thread.sleep(600);
|
||||||
|
|
||||||
|
//获取结果并拍照
|
||||||
|
String message = "trigger:1";
|
||||||
|
|
||||||
|
writer.write(message);
|
||||||
|
|
||||||
|
writer.flush();
|
||||||
|
System.out.println("Sent message to server: " + message);
|
||||||
|
|
||||||
|
StringBuilder response =new StringBuilder();
|
||||||
|
// 接收服务器的响应
|
||||||
|
while (true){
|
||||||
|
char[] lengthBytes = new char[1];
|
||||||
|
reader.read(lengthBytes);
|
||||||
|
if (lengthBytes[0] == ';') {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
response.append(lengthBytes[0]);
|
||||||
|
|
||||||
|
}
|
||||||
|
if (response != null) {
|
||||||
|
System.out.println("Server response: " + response);
|
||||||
|
log.info("respon:{}",response.toString());
|
||||||
|
} else {
|
||||||
|
System.out.println("No response from server. Closing connection.");
|
||||||
|
}
|
||||||
|
String respon = response.toString();
|
||||||
|
respon = respon.replace(";","");
|
||||||
|
String[] strings = respon.toString().split( ",");
|
||||||
|
|
||||||
|
Map<String, Integer> charCountMap = new HashMap<>();
|
||||||
|
|
||||||
|
// 统计每个字符的数量
|
||||||
|
for (String c : strings) {
|
||||||
|
charCountMap.put(c, charCountMap.getOrDefault(c, 0) + 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 找出数量最多的字符及其次数
|
||||||
|
String mostFrequentChar = null;
|
||||||
|
int len = 0;
|
||||||
|
for (Map.Entry<String, Integer> entry : charCountMap.entrySet()) {
|
||||||
|
if (entry.getValue() > len) {
|
||||||
|
mostFrequentChar = entry.getKey();
|
||||||
|
len = entry.getValue();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
len = len-1;
|
||||||
|
ConfigProperties.SmokeBoxType smokeBoxType = map.get(mostFrequentChar);
|
||||||
|
//计算个数
|
||||||
|
if (smokeBoxType != null && smokeBoxType.getNumOfLayers() != 0 && smokeBoxType.getNumLayers() != 0 ){
|
||||||
|
algorithmPojo.setGoodsTypeResult(smokeBoxType.getCode());
|
||||||
|
algorithmPojo.setGoodsNumberResult( len / smokeBoxType.getNumOfLayers() * smokeBoxType.getNumLayers());
|
||||||
|
}
|
||||||
|
if(algorithmPojo.getGoodsType().equals(algorithmPojo.getGoodsTypeResult())){
|
||||||
|
algorithmPojo.setResult(1);
|
||||||
|
}else {
|
||||||
|
algorithmPojo.setResult(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 关闭连接
|
||||||
|
socket.close();
|
||||||
|
|
||||||
|
System.out.println("Connection closed");
|
||||||
|
} catch (IOException e) {
|
||||||
|
algorithmPojo.setResult(0);
|
||||||
|
log.error("连接失败:"+ip,e);
|
||||||
|
} catch (InterruptedException e) {
|
||||||
|
algorithmPojo.setResult(0);
|
||||||
|
}catch (Exception e){
|
||||||
|
algorithmPojo.setResult(0);
|
||||||
|
log.error("连接失败:"+ip,e);
|
||||||
|
}
|
||||||
|
return algorithmPojo;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
System.out.println(4/1*13);
|
||||||
|
}
|
||||||
|
|
||||||
|
void updateTaskId(BufferedReader reader ,BufferedWriter writer ,AlgorithmPojo algorithmPojo){
|
||||||
|
try {
|
||||||
|
String message = "taskId:"+algorithmPojo.getTaskId();
|
||||||
|
|
||||||
|
writer.write(message);
|
||||||
|
writer.flush();
|
||||||
|
System.out.println("Sent message to server: " + message);
|
||||||
|
|
||||||
|
|
||||||
|
} catch (IOException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue