package com.mes.job;
|
|
|
import com.mes.glassinfo.service.GlassInfoService;
|
import lombok.SneakyThrows;
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import java.io.BufferedReader;
|
import java.io.InputStreamReader;
|
import java.net.InetSocketAddress;
|
import java.net.Socket;
|
|
public class BarcodeReadThread extends Thread{
|
|
public BarcodeReadThread(String ip,Integer port,Downpush downpush)
|
{
|
this.ip=ip;
|
this.port=port;
|
this.downpush=downpush;
|
}
|
private Socket socket;
|
private String ip;
|
private Integer port;
|
private Downpush downpush;
|
private BufferedReader in;
|
|
@SneakyThrows
|
@Override
|
public void run()
|
{
|
connectCheckin();//初次 循环尝试连接,直到连接成功
|
while (this!=null)
|
{
|
try
|
{
|
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
|
String response = in.readLine();
|
if(response!=null)
|
{
|
downpush.barcodeCheckin(response);
|
}
|
}
|
catch (Exception exception)
|
{
|
//异常,重连
|
connectCheckin();
|
}
|
finally {
|
if(in!=null)
|
{
|
in.close();
|
}
|
}
|
|
Thread.sleep(100);
|
}
|
}
|
|
@SneakyThrows
|
private void connectCheckin()
|
{
|
while (this!=null)
|
{
|
try
|
{
|
socket=new Socket();
|
socket.setSoTimeout(10000);
|
socket.connect(new InetSocketAddress(ip,port));
|
if(socket.isConnected())
|
{
|
return;
|
}
|
}
|
catch (Exception exception)
|
{
|
|
}
|
|
Thread.sleep(1000);
|
}
|
}
|
}
|