
Угу. Вот только если бы тебе приходилось постоянно разбираться с чем-то таким, ты бы быстро понял, кто горшки обжигает на самом деле.Вы Боги! Читаю - наслаждаюсь.
Стек -- не более чем контракт, никто не заставляет хранить в памяти 100500 скобочек, достаточно типа скобочки и их (скобочек) количества. Главное, чтобы push скобочку сохранял, а pop -- доставал. Как некоторая реализация стека будет это делать -- никого не волнует.вариант со стеком плохой.
Судя по всему, первым программистом был Бог. Так он такого понаписывал - ученые всего мира до сих пор не могут полностью этот код прочитатьИстинно говорю Вам, в этом мире человека оценивают по качеству написанного им программного кода.
Ну так и само имя бога прочитать (произнести ) не могут.Судя по всему, первым программистом был Бог. Так он такого понаписывал - ученые всего мира до сих пор не могут полностью этот код прочитатьИстинно говорю Вам, в этом мире человека оценивают по качеству написанного им программного кода.. А декомпилировать его вообще нереально
.
Это как посмотреть... Глянь, у него даже корректный выход из цикла прописан:врядли программистом
Исходники не смогут помочь. В исходникахна вообще не использовались гласные буквыну так имя в комментах к исходникам осталося. а исходников нету же.
Код: Виділити все
import java.io.*;
import java.net.*;
class SampleServer extends Thread{
Socket s; // вроде как глобальные переменные
int num;
public static void main(String args[]){
try{
int i = 1; // счётчик подключений
// привинтить сокет на локалхост, порт 3128
ServerSocket server = new ServerSocket(3128);
System.out.println("server is started");
// слушаем порт
while(true){
// ждем нового подключения, после чего запускаем обработку клиента
// в новый вычислительный поток и увеличиваем счётчик на единичку
new SampleServer(i, server.accept());
i++;
}
}
catch(Exception e)
{System.out.println("init error1: "+e);} // вывод исключений
}
public SampleServer(int num, Socket s)
{
System.out.println("new connection"+num);
// копируем данные
this.num = num;
this.s = s;
setDaemon(true);
setPriority(NORM_PRIORITY);
start(); // и запускаем новый вычислительный поток (см. ф-ю run())
}
public void run(){
try{
while(true) { // Добавил бесконечный цикл для установившегося соединения.
// сокет никогда не закрывается.
// s.setSoTimeout(300000); // выход за пределы по цикла на ошибку по истечению 5 мин (не совсем работает это)
// буфер данных в 64 килобайта
byte [] buf = new byte[64*1024];
// читаем 64кб от клиента, результат - кол-во реально принятых данных
// int r = is.read(buf);
// из сокета клиента берём поток входящих данных
//InputStream is = s.getInputStream();
int r = s.getInputStream().read(buf); // количество принятых байт в посылке
System.out.println("Recessive bite"+r);
if (r==(-1)){
System.out.println("socet close"); // если клиент дисконект закрываем сокет
return;
}
OutputStream os = s.getOutputStream(); // и оттуда же - поток данных от сервера к клиенту
String data = new String(buf, 0, r);// создаём строку, содержащую полученную от клиента информацию
System.out.println(data); //выводим полученные данные на экран
/*
* тут делаем все что надо со строкой data (парсим данные)
*
*
*/
os.write(data.getBytes()); // отправляем данные клиенту
}
}
catch(Exception e){
System.out.println("init error2: "+e); // вывод исключений
//s.close(); //хотелось бы вставить - но тут что такое сокет неопределено
}
}
}
http://docs.oracle.com/javase/6/docs/ap ... ml#start()Непонятно- в какой момент и от чего запускается функция public void run() ?
что делает строка start() ?;
void start()
Causes this thread to begin execution; the Java Virtual Machine calls the run method of this thread.
Это заблуждение, мягко говоря. Память кушают кривые программы, а современные JVM как раз очень неплохо справляются с управлением памятью.джава нереально много ресурсов кушает. прежде всего памяти. причем даже в моменты простоя.
Путаешь. Зачем монстрообразный сервлет-контейнер, если автору нужен голый сокет-сервер?Тебе с томкатом хостинги надо искать. Если не путаю.
Таких, скорей всего - нету. Точнее, есть, но сама установка займет немало танцев с бубном.Спасибо. почерпнул инфы.
Снова обращаюсь за консультацией. Создал я запускаемый jar . Это как из кода видно программа слушающая порт и далее я записываю в текстовый файл все что пришло (сервер по сути).
Есть ли бесплатные хостинги, куда можно залить этот jar файл и запустить его там?
Гуглю гуглю.. не могу найти ответа. Все сообщения старые. На сегодня никто не знает бесплатный хостинг где можно запускать свои jar?
Код: Виділити все
/*************************************************************************
* Compilation: javac Parentheses.java
* Execution: java Parentheses
* Dependencies: In.java Stack.java
*
* Reads in a text file and checks to see if the parentheses are balanced.
*
* % java Parentheses
* [()]{}{[()()]()}
* true
*
* % java Parentheses
* [(])
* false
*
*************************************************************************/
public class Parentheses {
private static final char LEFT_PAREN = '(';
private static final char RIGHT_PAREN = ')';
private static final char LEFT_BRACE = '{';
private static final char RIGHT_BRACE = '}';
private static final char LEFT_BRACKET = '[';
private static final char RIGHT_BRACKET = ']';
public static boolean isBalanced(String s) {
Stack<Character> stack = new Stack<Character>();
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) == LEFT_PAREN) stack.push(LEFT_PAREN);
if (s.charAt(i) == LEFT_BRACE) stack.push(LEFT_BRACE);
if (s.charAt(i) == LEFT_BRACKET) stack.push(LEFT_BRACKET);
if (s.charAt(i) == RIGHT_PAREN) {
if (stack.isEmpty()) return false;
if (stack.pop() != LEFT_PAREN) return false;
}
else if (s.charAt(i) == RIGHT_BRACE) {
if (stack.isEmpty()) return false;
if (stack.pop() != LEFT_BRACE) return false;
}
else if (s.charAt(i) == RIGHT_BRACKET) {
if (stack.isEmpty()) return false;
if (stack.pop() != LEFT_BRACKET) return false;
}
}
return stack.isEmpty();
}
public static void main(String[] args) {
In in = new In();
String s = in.readAll().trim();
StdOut.println(isBalanced(s));
}
}
https://www.digitalocean.com/communityСпасибо. почерпнул инфы.
Снова обращаюсь за консультацией. Создал я запускаемый jar . Это как из кода видно программа слушающая порт и далее я записываю в текстовый файл все что пришло (сервер по сути).
Есть ли бесплатные хостинги, куда можно залить этот jar файл и запустить его там?
Гуглю гуглю.. не могу найти ответа. Все сообщения старые. На сегодня никто не знает бесплатный хостинг где можно запускать свои jar?
Зараз переглядають цей форум: Немає зареєстрованих користувачів і 215 гостей