public boolean exeSend(AbstractRpcConnector con) { boolean hasSend = false; RpcOioConnector connector = (RpcOioConnector) con; DataOutputStream dos = connector.getOutputStream(); while (connector.isNeedToSend()) { RpcObject rpc = connector.getToSend(); RpcUtils.writeDataRpc(rpc, dos, connector); hasSend = true; } return hasSend; }
@Override public void run() { while (!stop) { try { Socket socket = server.accept(); RpcOioConnector connector = new RpcOioConnector(socket, writer); RpcOioAcceptor.this.addConnectorListeners(connector); connector.setExecutorService(RpcOioAcceptor.this.getExecutorService()); connector.setExecutorSharable(true); connector.startService(); } catch (IOException e) { RpcOioAcceptor.this.handleNetException(e); } } }
@Override public void stopService() { super.stopService(); stop = true; for (RpcOioConnector connector : connectors) { connector.stopService(); } connectors.clear(); this.stopListeners(); try { server.close(); } catch (IOException e) { // do nothing } }