From 93af1c6ffb9ae0e894689ad3a37b548e57d54cff Mon Sep 17 00:00:00 2001 From: linzhijie <19970921lzj> Date: 星期四, 11 三月 2021 19:10:07 +0800 Subject: [PATCH] 有注释的测评系统业务代码 --- src/main/java/com/ots/project/exam/service/impl/ReportCalculationServicesImpl.java | 28 +++++++++++++++++++++++----- 1 files changed, 23 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/ots/project/exam/service/impl/ReportCalculationServicesImpl.java b/src/main/java/com/ots/project/exam/service/impl/ReportCalculationServicesImpl.java index 84395b3..b16b200 100644 --- a/src/main/java/com/ots/project/exam/service/impl/ReportCalculationServicesImpl.java +++ b/src/main/java/com/ots/project/exam/service/impl/ReportCalculationServicesImpl.java @@ -1,10 +1,12 @@ package com.ots.project.exam.service.impl; + import com.alibaba.fastjson.JSON; import com.ots.project.exam.service.ReportCalculationServices; import com.ots.project.tool.report.reportCalculation.response.ReportAPIResult; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; + import javax.annotation.PostConstruct; import javax.annotation.PreDestroy; import java.io.BufferedReader; @@ -13,28 +15,36 @@ import java.io.PrintWriter; import java.net.Socket; import java.util.Objects; + @Service @Slf4j public class ReportCalculationServicesImpl implements ReportCalculationServices { + private Socket socket; + private PrintWriter socketOut; + private BufferedReader socketIn; + @Value("${ATSTai.port}") private int port; + @Value("${ATSTai.host}") private String host; + @PostConstruct private void init() { try { - + //棣栧厛鐩存帴鍒涘缓socket,绔彛鍙�1~1023涓虹郴缁熶繚瀛橈紝涓�鑸鍦�1023涔嬪 socket = new Socket(host, port); - + //鍒涘缓涓変釜娴侊紝绯荤粺杈撳叆娴丅ufferedReader systemIn锛宻ocket杈撳叆娴丅ufferedReader socketIn锛宻ocket杈撳嚭娴丳rintWriter socketOut; socketIn = new BufferedReader(new InputStreamReader(socket.getInputStream())); socketOut = new PrintWriter(socket.getOutputStream()); } catch (Exception ex) { log.error("璋冪敤娉板浗鍥㈤槦缁勪欢杩炴帴澶辫触锛歿}",ex.getMessage(),ex); } } + @PreDestroy private void destory() { if (Objects.nonNull(socketIn)) { @@ -55,15 +65,22 @@ } } } - + + /** + * 鍒ゆ柇鏄惁鏂紑杩炴帴锛屾柇寮�杩斿洖true,娌℃湁杩斿洖false + * @param socket + * @return + */ public Boolean isServerClose(Socket socket){ try{ - socket.sendUrgentData(0xFF); + socket.sendUrgentData(0xFF);//鍙戦��1涓瓧鑺傜殑绱ф�ユ暟鎹紝榛樿鎯呭喌涓嬶紝鏈嶅姟鍣ㄧ娌℃湁寮�鍚揣鎬ユ暟鎹鐞嗭紝涓嶅奖鍝嶆甯搁�氫俊 return false; }catch(Exception se){ return true; } } + + @Override public ReportAPIResult stageCalculation(Object request) { if (isServerClose(socket)) { @@ -87,10 +104,11 @@ } return reportAPIResult; } + private ReportAPIResult getReportAPIResult(Object request) throws IOException { ReportAPIResult reportAPIResult; socketOut.println(JSON.toJSONString(request)); - socketOut.flush(); + socketOut.flush();//璧跺揩鍒锋柊浣縎erver鏀跺埌锛屼篃鍙互鎹㈡垚socketOut.println(readline, ture) String inTemp = socketIn.readLine(); reportAPIResult = JSON.parseObject(inTemp, ReportAPIResult.class); return reportAPIResult; -- Gitblit v1.9.1