mirror of
https://github.com/fluencelabs/jabci
synced 2025-03-31 01:11:12 +00:00
commit
19d3f573e1
@ -28,6 +28,7 @@ import java.io.IOException;
|
|||||||
import java.math.BigInteger;
|
import java.math.BigInteger;
|
||||||
import java.net.ServerSocket;
|
import java.net.ServerSocket;
|
||||||
import java.net.Socket;
|
import java.net.Socket;
|
||||||
|
import java.net.SocketTimeoutException;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
@ -48,6 +49,7 @@ import com.google.protobuf.GeneratedMessageV3;
|
|||||||
public class TSocket extends ASocket {
|
public class TSocket extends ASocket {
|
||||||
|
|
||||||
public static final int DEFAULT_LISTEN_SOCKET_PORT = 46658;
|
public static final int DEFAULT_LISTEN_SOCKET_PORT = 46658;
|
||||||
|
private static final int DEFAULT_LISTEN_SOCKET_TIMEOUT = 1000;
|
||||||
private static final Logger TSOCKET_LOG = LoggerFactory.getLogger(TSocket.class);
|
private static final Logger TSOCKET_LOG = LoggerFactory.getLogger(TSocket.class);
|
||||||
private static final Logger HANDLER_LOG = LoggerFactory.getLogger(SocketHandler.class);
|
private static final Logger HANDLER_LOG = LoggerFactory.getLogger(SocketHandler.class);
|
||||||
|
|
||||||
@ -65,7 +67,7 @@ public class TSocket extends ASocket {
|
|||||||
* Start listening on the default ABCI port 46658
|
* Start listening on the default ABCI port 46658
|
||||||
*/
|
*/
|
||||||
public void start() {
|
public void start() {
|
||||||
this.start(DEFAULT_LISTEN_SOCKET_PORT);
|
this.start(DEFAULT_LISTEN_SOCKET_PORT, DEFAULT_LISTEN_SOCKET_TIMEOUT);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -73,12 +75,24 @@ public class TSocket extends ASocket {
|
|||||||
*
|
*
|
||||||
* @param portNumber
|
* @param portNumber
|
||||||
*/
|
*/
|
||||||
public void start(int portNumber) {
|
public void start(final int portNumber) {
|
||||||
|
this.start(portNumber, DEFAULT_LISTEN_SOCKET_TIMEOUT);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Start listening on the specified port
|
||||||
|
*
|
||||||
|
* @param portNumber
|
||||||
|
* @param socketTimeout
|
||||||
|
*/
|
||||||
|
public void start(final int portNumber,final int socketTimeout) {
|
||||||
TSOCKET_LOG.debug("starting serversocket");
|
TSOCKET_LOG.debug("starting serversocket");
|
||||||
continueRunning = true;
|
continueRunning = true;
|
||||||
int socketcount = 0;
|
int socketcount = 0;
|
||||||
try (ServerSocket serverSocket = new ServerSocket(portNumber)) {
|
try (ServerSocket serverSocket = new ServerSocket(portNumber)) {
|
||||||
|
serverSocket.setSoTimeout(socketTimeout);
|
||||||
while (continueRunning) {
|
while (continueRunning) {
|
||||||
|
try {
|
||||||
Socket clientSocket = serverSocket.accept();
|
Socket clientSocket = serverSocket.accept();
|
||||||
lastConnectedSocketTime = System.currentTimeMillis();
|
lastConnectedSocketTime = System.currentTimeMillis();
|
||||||
String socketName = socketNameForCount(++socketcount);
|
String socketName = socketNameForCount(++socketcount);
|
||||||
@ -87,11 +101,15 @@ public class TSocket extends ASocket {
|
|||||||
t.start();
|
t.start();
|
||||||
runningThreads.add(t);
|
runningThreads.add(t);
|
||||||
TSOCKET_LOG.debug("Started thread for sockethandling...");
|
TSOCKET_LOG.debug("Started thread for sockethandling...");
|
||||||
|
} catch (SocketTimeoutException ste) {
|
||||||
|
// this is triggered by accept()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
TSOCKET_LOG.debug("TSocket Stopped Running");
|
TSOCKET_LOG.debug("TSocket Stopped Running");
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
TSOCKET_LOG.error("Exception caught when trying to listen on port " + portNumber + " or listening for a connection", e);
|
TSOCKET_LOG.error("Exception caught when trying to listen on port " + portNumber + " or listening for a connection", e);
|
||||||
}
|
}
|
||||||
|
TSOCKET_LOG.debug("Exited main-run-while loop");
|
||||||
}
|
}
|
||||||
|
|
||||||
private String socketNameForCount(int c) {
|
private String socketNameForCount(int c) {
|
||||||
@ -124,6 +142,7 @@ public class TSocket extends ASocket {
|
|||||||
|
|
||||||
runningThreads.clear();
|
runningThreads.clear();
|
||||||
Thread.currentThread().interrupt();
|
Thread.currentThread().interrupt();
|
||||||
|
TSOCKET_LOG.debug("Finished calling stop on members.");
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* @return the amount of connected sockets, this should usually be 3: info,mempool and consensus
|
* @return the amount of connected sockets, this should usually be 3: info,mempool and consensus
|
||||||
|
Loading…
x
Reference in New Issue
Block a user