public static void main(String args[]) { String fileToSend = "C:\\test1.txt"; while (true) { // Maak lokale variabels eerst aan. // Dit is nodig om deze ook te gebruiken buiten de "try catch" blok. ServerSocket welcomeSocket = null; Socket connectionSocket = null; BufferedOutputStream outToClient = null; try { // poort waar gebruiker kan op connecteren welcomeSocket = new ServerSocket(3248); // Tot er een gebruiker gevonden is zal .accept() blijven wachten // Nadat er iemand geconnecteerd is zal er een nieuwe socket aangemaakt worden waarmee deze // met elkaar communiceren connectionSocket = welcomeSocket.accept(); // buffer voor data communicatie tussen server en client outToClient = new BufferedOutputStream(connectionSocket.getOutputStream()); } catch (IOException ex) { System.out.println("IOException1"); } // if an I/O error occurs when opening the socket. if (outToClient != null) // wanneer buffer correct is aangemaakt zal deze niet een null waarde hebben { // gemaakte variabele doorgeven aan thread Connection c = new Connection(connectionSocket, outToClient, fileToSend); // thread starten c.start(); } } }
void serv(int i) { try { S = new DatagramSocket(i); S.setSoTimeout(5000); } catch (Exception exception) { exception.printStackTrace(); if (S != null) try { S.close(); } catch (Exception exception2) { } return; } System.out.println(DF.format(new Date()) + "Waiting connections ..."); do try { buf = new byte[256]; P = new DatagramPacket(buf, buf.length); S.receive(P); Connection connection = (Connection) Connections.get(P.getAddress().toString() + P.getPort()); if (connection == null) { System.out.println( DF.format(new Date()) + "Connect from " + " (" + P.getAddress().getHostAddress() + ")"); connection = new Connection(this, P); Connections.put(P.getAddress().toString() + P.getPort(), connection); connection.start(); } else { connection.packet(P); } } catch (Exception exception1) { } while (true); }
@Override public int run() throws Exception { // Default values of command line arguments String host = DEFAULT_HOST; int port = DEFAULT_PORT; String user = DEFAULT_USER; String pass = DEFAULT_PASS; String destination = DEFAULT_DESTINATION; String file = ""; // No default -- if not given, don't read/write file int sleep = 0; boolean showpercent = false; int batchSize = 0; int length = 500; // Length of message generated internally String properties = ""; String format = "short"; String durable = null; int n = 1; // n is the number of messages to process, or a specific // message number, depending on content String url = ""; // No default -- if not given, don't use it String[] nonSwitchArgs = cl.getArgs(); if (nonSwitchArgs.length > 0) n = Integer.parseInt(nonSwitchArgs[0]); String _destination = cl.getOptionValue("destination"); if (_destination != null) destination = _destination; String _host = cl.getOptionValue("host"); if (_host != null) host = _host; String _port = cl.getOptionValue("port"); if (_port != null) port = Integer.parseInt(_port); String _file = cl.getOptionValue("file"); if (_file != null) file = _file; String _user = cl.getOptionValue("user"); if (_user != null) user = _user; String _pass = cl.getOptionValue("password"); if (_pass != null) pass = _pass; String _url = cl.getOptionValue("url"); if (_url != null) url = _url; String _sleep = cl.getOptionValue("sleep"); if (_sleep != null) sleep = Integer.parseInt(_sleep); if (cl.hasOption("percent")) showpercent = true; String _batchSize = cl.getOptionValue("batch"); if (_batchSize != null) batchSize = Integer.parseInt(_batchSize); String _L = cl.getOptionValue("length"); if (_L != null) length = Integer.parseInt(_L); String _properties = cl.getOptionValue("properties"); if (_properties != null) properties = _properties; String _durable = cl.getOptionValue("durable"); if (_durable != null) durable = _durable; boolean batch = false; if (batchSize != 0) batch = true; String _format = cl.getOptionValue("format"); if (_format != null) format = _format; ActiveMQConnectionFactory factory = getFactory(host, port, url); Connection connection = factory.createConnection(user, pass); if (durable != null) connection.setClientID(durable); connection.start(); Session session = connection.createSession(batch, Session.AUTO_ACKNOWLEDGE); Topic topic = session.createTopic(destination); MessageConsumer consumer = null; if (durable != null) consumer = session.createDurableSubscriber(topic, "amqutil"); else consumer = session.createConsumer(topic); int oldpercent = 0; for (int i = 0; i < n; i++) { javax.jms.Message message = consumer.receive(); if (batch) if ((i + 1) % batchSize == 0) session.commit(); if (sleep != 0) Thread.sleep(sleep); JMSUtil.outputMessage(format, message, file); if (showpercent) { int percent = i * 100 / n; if (percent != oldpercent) System.out.println("" + percent + "%"); oldpercent = percent; } } if (batch) session.commit(); connection.close(); return 0; }
/** Begin running the websocket server. */ @Override public void run() { try { Logger.info( MessageFormat.format("WebSocketServerBridge listening on port {0}...", this.port)); serverSocket = new ServerSocket(this.port); // Waiting for the server socket to close or until the server is shutdown manually. while ((this.isServerRunning) && (!serverSocket.isClosed())) { // Wait for incoming connections. Socket socket = serverSocket.accept(); // Try to reclaim any threads if we are exceeding our maximum. // TimeComplexity: O(n) -- Where n is the number of threads valid or invalid. // NOTE: Minimal unit testing has been done here...more testing is required. if (threads.size() + 1 > this.getMaximumThreads()) { for (int i = 0; i < threads.size(); i++) { if (!threads.get(i).isAlive()) { threads.remove(i); } } } // Make sure we have enough threads before accepting. // NOTE: Minimal unit testing has been done here...more testing is required. if ((threads.size() + 1) <= this.getMaximumThreads()) { Connection t = new Connection(socket, this.serviceLayer, this); t.start(); threads.add(t); } else { Logger.debug("The server has reached its thread maximum..."); } } // END OF while ( (this.isServerRunning) && (!serverSocket.isClosed()) )... Logger.info("WebSocket server stopping..."); } catch (IOException ioException) { // --- CR (8/10/13) --- Only log the event if the server is still running. This should // prevent an error message from appearing when the server is restarted. if (this.isServerRunning) { Logger.info( MessageFormat.format("The port {0} could not be opened for WebSockets.", this.port)); Logger.debug(ioException.getMessage()); } // Close all threads. // TimeComplexity: O(n) -- Where n is the number of threads valid or invalid. for (Connection t : threads) { if (t.isAlive()) { t.close(); } } } }