改了发送部分的代码 这下真能跑了

This commit is contained in:
lichx 2023-12-20 19:52:51 +08:00
parent 1f3a09c25f
commit fc35589202
4 changed files with 104 additions and 35 deletions

Binary file not shown.

View File

@ -15,6 +15,7 @@ public class DmsNetServer {
public static void main(String[] args) {
AcceptLogThread acceptLogThread = new AcceptLogThread(10000);
AcceptTranThread acceptTranThread = new AcceptTranThread(10001);
System.out.println("Start listening port 10000/10001");
acceptLogThread.start();
acceptTranThread.start();
}
@ -46,6 +47,9 @@ class AcceptLogThread extends Thread{
{
ois = new ObjectInputStream(socket.getInputStream());
ArrayList<MatchedLogRec>matchedLogRecs = (ArrayList<MatchedLogRec>) ois.readObject();
if (matchedLogRecs == null) {
continue;
}
logRecService.saveMatchLogToDB(matchedLogRecs);
System.out.println("完成一次日志数据接收");
}
@ -85,6 +89,9 @@ class AcceptTranThread extends Thread{
{
ois = new ObjectInputStream(socket.getInputStream());
ArrayList<MatchedTransport>matchedTransports = (ArrayList<MatchedTransport>) ois.readObject();
if (matchedTransports == null) {
continue;
}
transportService.saveMatchTransportToDB(matchedTransports);
System.out.println("完成一次物流数据接收");
}

View File

@ -21,10 +21,7 @@ import javafx.util.Duration;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.Socket;
import java.net.SocketException;
import java.net.*;
import java.sql.ResultSet;
import java.util.*;
@ -538,10 +535,14 @@ public class InfoInputFXML {
@FXML
public void sandData(ActionEvent event) {
boolean doLog=false,doTransport=false;
boolean doLog=true,doTransport=true;
if(matchedLogs==null||matchedLogs.isEmpty())
doLog=false;
if(matchedTrans==null||matchedTrans.isEmpty())
doTransport=false;
if((matchedLogs==null||matchedLogs.isEmpty())&&!logRecList.isEmpty())
{
doLog=true;
doLog = true;
Alert alert = new Alert(AlertType.CONFIRMATION);
alert.setTitle("Warning Dialog");
alert.setHeaderText("配对的日志数据为空");
@ -554,23 +555,6 @@ public class InfoInputFXML {
}
else doLog=false;
}
if(doLog)
{
try {
Socket logSocket = new Socket("116.62.133.59",10000);
ObjectOutputStream oos = new ObjectOutputStream(logSocket.getOutputStream());
oos.writeObject(matchedLogs);
oos.flush();
oos.close();
} catch (IOException e) {
e.printStackTrace();
}
logService.saveAndAppendMatchLog(matchedLogs);
//logService.saveMatchLogToDB(matchedLogs);//添加至DB
logRecList.clear();
matchedLogs.clear();
logUpVal=0;
}
if((matchedTrans==null|| matchedTrans.isEmpty())&&!transportList.isEmpty())
{
doTransport=true;
@ -586,25 +570,98 @@ public class InfoInputFXML {
}
else doTransport=false;
}
if(doTransport)
{
try {
Socket transSocket = new Socket("116.62.133.59",10001);
ObjectOutputStream oos = new ObjectOutputStream(transSocket.getOutputStream());
boolean finalDoLog = doLog;
boolean finalDoTransport = doTransport;
Thread thread = new Thread(()->{
Thread thread1=null;
if(finalDoLog)
{
try {
Socket logSocket = new Socket("116.62.133.59",10000);
ObjectOutputStream oos = new ObjectOutputStream(logSocket.getOutputStream());
oos.writeObject(matchedLogs);
oos.flush();
oos.close();
} catch (IOException e) {
}catch(ConnectException e) {
if(thread1==null)
{
thread1 = new Thread(()->{sandError();});
thread1.start();
}
}
catch (IOException e) {
e.printStackTrace();
}
logRecList.clear();
matchedLogs.clear();
logUpVal=0;
}
logService.saveAndAppendMatchLog(matchedLogs);
//logService.saveMatchLogToDB(matchedLogs);//添加至DB
logRecList.clear();
matchedLogs.clear();
logUpVal=0;
if(finalDoTransport)
{
try {
Socket transSocket = new Socket("116.62.133.59",10001);
ObjectOutputStream oos = new ObjectOutputStream(transSocket.getOutputStream());
oos.writeObject(matchedTrans);
oos.flush();
oos.close();
}catch (ConnectException e) {
if(thread1==null)
{
thread1 = new Thread(()->{sandError();});
thread1.start();
}
}
catch (IOException e) {
e.printStackTrace();
}
transportList.clear();
matchedTrans.clear();
logUpVal=0;
}
Platform.runLater(()->{
logImageView.setImage(OKImage);
transportImageView.setImage(OKImage);
logInfoLabel.setText("就绪");
transportInfoLabel.setText("就绪");
logInfoLabel.setTextFill(Color.color(0,0,0,1));
transportInfoLabel.setTextFill(Color.color(0,0,0,1));
});
});
if(doLog||doTransport)
{
logInfoLabel.setTextFill(Color.color(0,0,0,1));
transportInfoLabel.setTextFill(Color.color(0,0,0,1));
logInfoLabel.setText("发送数据中");
transportInfoLabel.setText("发送数据中");
thread.start();
}
}
void sandError()
{
Platform.runLater(()->
{
logImageView.setImage(errorImage);
transportImageView.setImage(errorImage);
logInfoLabel.setText("发送失败,请检查服务器状态");
logInfoLabel.setText("发送失败,请检查服务器状态");
logInfoLabel.setTextFill(Color.color(1,0,0,1));
transportInfoLabel.setTextFill(Color.color(1,0,0,1));
});
try {
Thread.sleep(5000);
} catch (InterruptedException ex) {
throw new RuntimeException(ex);
}
Platform.runLater(()->{
logImageView.setImage(OKImage);
transportImageView.setImage(OKImage);
logInfoLabel.setText("就绪");
transportInfoLabel.setText("就绪");
logInfoLabel.setTextFill(Color.color(0,0,0,1));
transportInfoLabel.setTextFill(Color.color(0,0,0,1));
});
}
@FXML
public void saveData(ActionEvent event) {
boolean doLog=false,doTransport=false;

View File

@ -1,5 +1,7 @@
package com.qst.dms.util;
import com.qst.dms.ui.MainFrame;
import java.io.FileInputStream;
import java.util.Properties;
@ -10,7 +12,10 @@ public class Config {
try {
p = new Properties();
//加载配置类
p.load(new FileInputStream("src/com/qst/dms/db/config/mysql.properties"));
//这么写完全不行
// p.load(new FileInputStream("src/com/qst/dms/db/config/mysql.properties"));
//看我的
p.load(MainFrame.class.getClassLoader().getResourceAsStream("com/qst/dms/db/config/mysql.properties"));
} catch (Exception e) {
e.printStackTrace();
}