Форум программистов, компьютерный форум, киберфорум
Java: Сети
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.95/65: Рейтинг темы: голосов - 65, средняя оценка - 4.95
1 / 1 / 0
Регистрация: 21.03.2014
Сообщений: 38

Сервер и несколько клиентов

22.05.2014, 23:36. Показов 14125. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток.
Скажите, при создании клиент-сервера, к которому подключаются несколько серверов, то такое взаимодействие сервера с каждым клиентом будет происходить сразу после установки подключения клиента или можно как-то остановить работу клиента до того, пока не будет подключено нужное кол-во клиентов? Если да, то какие методы для это предусмотрены?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.05.2014, 23:36
Ответы с готовыми решениями:

Сервер на несколько клиентов
Здравствуйте, появилась проблема. Как из того сервера,что я сделал, который принимает только одного клиента, можно сделать много....

Сервер -> множество клиентов
День добрый. Пытаюсь решить задачу на сокеты, всё как всегда. Нужно создать сервер, к которому будет подключаться некоторое количество...

Клиент-сервер со множеством клиентов java
Добрый день. Писал программу клиент-сервер со множественным подключением клиентов, но столкнулся с проблемой: не могу с одного сервера...

24
1 / 1 / 0
Регистрация: 21.03.2014
Сообщений: 38
30.05.2014, 21:35  [ТС]
Студворк — интернет-сервис помощи студентам
reisal78, Не правильно, естественно.
Оставил пока так, что в run() принимается только line1, и в итоге getData() выводит 1 2 1 2, 3 4 3 4 и т.д.
C++
1
2
3
4
5
6
7
8
run(){
...
String line1;
line1 = in.readUTF();
Server getData = new Server();
getData.getData(line1, line1, numberThread);
...
}
C++
1
2
3
4
5
6
7
public void getData (String s1, String s2, int number) {
        
      //????
      s2 = s1 + s2;
      System.out.println("Строка: " + s2);
        
    }
getData же опять будет принимать свои значения для каждого потока. Разве нет?
0
 Аватар для reisal78
944 / 687 / 230
Регистрация: 28.04.2013
Сообщений: 1,925
31.05.2014, 03:23
Да, я вызвал getData из класса ServerThread с помощью
Java
1
2
Server getData = new Server();
getData.getData(line, line, numberThread);
Вас подводит то, что вы четко не понимаете что такое объекты и как они могут взаимодействовать между собой...

Смотрите, вы в методе main создаете объект
Java
1
Server server = new Server();
а потом в классе ServerThread создаете еще один объект (новый, он не имеет никакого отношения к тому объекту с которым вы начали работать при старте программы)
Java
1
Server getData = new Server();
Вам просто надо передать в класс ServerThread ссылку на уже созданный объект.
Для этого надо изменить конструктор класса ServerThread и соответственно его создание...
Java
1
2
new ServerThread(clientSockets[i], i, sendLine, this)
//this отправит ссылку на текущий объект класса Server
0
1 / 1 / 0
Регистрация: 21.03.2014
Сообщений: 38
04.06.2014, 17:08  [ТС]
Вроде бы переделал конструктор и вызов метода getData. Но все еще сам метод нужно написать. Пока я не могу понять как
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
 
//============================================================================== 
class ServerThread implements Runnable {
    private Socket clientSocket;
    private int numberThread;
    private String sendLine;
    private Server server;
    private String InLine1, InLine2;
 
    public ServerThread(Socket clientSocket, int numberThread, String sendLine, String InLine1,String InLine2, Server server) {
        this.clientSocket = clientSocket;
        this.numberThread = numberThread;
        this.sendLine = sendLine;
        this.server = server;
        this.InLine1 = InLine2;
        this.InLine2 = InLine2;
    }
 
    @Override
    public void run() {
        try {
 
            InputStream sin = clientSocket.getInputStream();
            OutputStream sout = clientSocket.getOutputStream();
 
            DataInputStream in = new DataInputStream(sin);
            DataOutputStream out = new DataOutputStream(sout);
 
            System.out.println("\nОтправляем " + (numberThread + 1) + " клиенту!");
 
            // отсылаем клиенту строку = число1_число2
 
            out.writeUTF(sendLine);
            // выводим ее на экран
            System.out.println(sendLine);
 
            // ожидаем пока клиент пришлет строку текста
            in.readUTF();
 
            // отчет о клиенте
            System.out.println("Клиент " + (numberThread + 1) + " получил покет!");
            
            InLine1 = in.readUTF();
 
            server.getData(InLine1, InLine2, numberThread);
 
            in.close();
            out.close();
            sin.close();
            sout.close();
        } catch (IOException e) {
            System.out.println("Ошибка: " + e);
        }
    }
}
 
//==============================================================================
//==============================================================================
//==============================================================================
public class Server {
 
    public String line = "8 7 6 5 4 3 2 1";
    public String[] str = line.split("[ ]");
    public ServerSocket serverSocket;
    public Socket[] clientSockets;
    
    public Server() {
        clientSockets = new Socket[4];
    }
 
    public void connection() throws IOException {
        serverSocket = new ServerSocket(12345);
        System.out.println("Сервер готов к работе!");
        System.out.println("\n---------------------------------------");
    }
    
    public void runApp() throws IOException {
        for (int i = 0; i < clientSockets.length; i++) {
            //Ждем появления клиента
            clientSockets[i] = serverSocket.accept();
            //Инфа о подключенных клиентах
            System.out.println("\nКлиент " + (i + 1) + " подключился!");
            System.out.println("\n" + clientSockets[i]);
        }
 
        for (int i = 0; i < clientSockets.length; i++) {
            String sendLine;
            String InLine1 = null, InLine2 = null;
            sendLine = str[2 * i] + " " + str[2 * i + 1];
            Thread t = new Thread(new ServerThread(clientSockets[i], i, sendLine,InLine1, InLine2, this));
            t.start();
        }
    }
    
    public String getData (String s1, String s2, int number) {
        
      //????
      s2 = s1 + " " + s2;  
      System.out.println("Строка: " + s2);
      
      return s2;
        
    }
 
    public static void main(String[] args) throws IOException {
        Server server = new Server();
        server.connection();
        server.runApp();
    }
}
И вот, что выдает:
Сервер готов к работе!

---------------------------------------

Клиент 1 подключился!

Socket[addr=/127.0.0.1,port=59394,localport=12345]

Клиент 2 подключился!

Socket[addr=/127.0.0.1,port=59395,localport=12345]

Клиент 3 подключился!

Socket[addr=/127.0.0.1,port=59398,localport=12345]

Клиент 4 подключился!

Socket[addr=/127.0.0.1,port=59399,localport=12345]

Отправляем 2 клиенту!

Отправляем 3 клиенту!
4 3
Клиент 3 получил покет!
Строка: 3 4 null

Отправляем 4 клиенту!
2 1
Клиент 4 получил покет!
6 5
Клиент 2 получил покет!
Строка: 5 6 null
Строка: 1 2 null

Отправляем 1 клиенту!
8 7
Клиент 1 получил покет!
Строка: 7 8 null
СБОРКА УСПЕШНО ЗАВЕРШЕНА (общее время: 9 секунды)
0
1 / 1 / 0
Регистрация: 21.03.2014
Сообщений: 38
08.06.2014, 18:40  [ТС]
Можно попробовать создать файл и в него записывать значения
0
1 / 1 / 0
Регистрация: 21.03.2014
Сообщений: 38
11.06.2014, 01:23  [ТС]
Фууух... Ну вот я и добил это чертов клиент-сервер. Набыдлокодил, конечно, но когда время поджимает важно только что результат выдает.

reisal78, спасибо огромное за помощь. Без тебя бы у меня ничего бы не получилось. Говорю прямо, т.к. все эти "+1 Спасибо" вообще ничто.

Только знакомлюсь с java, так что логика программы соответствующая. На комментарии уже сил не осталось.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Scanner;
 
//============================================================================== 
class ServerThread implements Runnable {
    private Socket clientSocket;
    private int numberThread;
    private String sendLine;
    private String string;
    private File f1;
    private InputStream sin;
    private OutputStream sout;
    private DataInputStream in;
    private DataOutputStream out ;  
    private DataOutputStream dout ;
    private DataInputStream din;
    private StringBuffer data;  
    private Scanner scan;
//============================================================================== 
    public ServerThread
        (
            Socket clientSocket,
            int numberThread,
            String sendLine,
            String string,
            File f1,
            InputStream sin,
            OutputStream sout,
            DataInputStream in,
            DataOutputStream out,
            DataOutputStream dout,
            DataInputStream din,
            StringBuffer data,
            Scanner scan
        ) 
    
    {
        this.clientSocket = clientSocket;
        this.numberThread = numberThread;
        this.sendLine = sendLine;
        this.string = string;
        this.f1 = f1;
        this.sin = sin;
        this.sout = sout;
        this.in = in;
        this.out = out;
        this.dout = dout;
        this.din = din;
        this.data = data;
        this.scan = scan;
    }
        
//==============================================================================        
    public void sleeping(int time){
        try {
                Thread.sleep((time)*1000);
            } catch (InterruptedException ex) {
                Logger.getLogger(ServerThread.class.getName()).log(Level.SEVERE, null, ex);
              }
    }
//==============================================================================        
    public void SendingToFile(String st, int i, int count){
        try 
            {   
                System.out.println("Записали в файл:"+ st);
                                
                if (i == 0 || i == 2){
                    dout.writeUTF(st);
                    dout.flush();
                }
                else if(count == 0){
                    dout.writeUTF(st+"\n");
                    dout.flush();   
                }
                else {
                    dout.writeUTF(st);
                    dout.flush();
                }
            }catch(IOException ex){
                 System.out.println("Ошибка записи в файл: "+ ex);
            }
    } 
    //==============================================================================        
    public String ScannerFile(String string){
        try {
            string = scan.nextLine();
            System.out.println("Прочитали из файла:" + string);
 
        } catch ( Exception ex ) {
                System.out.println("Ошибка чтения из файла: "+ ex);
        }
        return string;
    } 
//==============================================================================
    @Override
    public void run() {
        try {
            //------------------------------------------------------------------
            int count = 0;
            String Answer = null;
            
            //Сообщаем клиенут его номер
            out.writeInt(numberThread);
            out.flush();
            
            System.out.println("Отправляем " + sendLine + " " + (numberThread + 1) + "-му клиенту!");
            if(numberThread == 3) {System.out.println("\n");}
            out.writeUTF(sendLine);
            out.flush();
            
            //------------------------------------------------------------------
            if(numberThread == 0) {sleeping(numberThread);}
            if(numberThread == 1) {sleeping(numberThread);}
            if(numberThread == 2) {sleeping(numberThread);}
            if(numberThread == 3) {sleeping(numberThread);}
            //------------------------------------------------------------------
            in.readUTF();
            System.out.println("Клиент " + (numberThread + 1) + " получил покет!");   
            if(numberThread == 3) {System.out.println("\n");}
            string = in.readUTF();
                      
            //------------------------------------------------------------------
            if(numberThread == 0) {sleeping(numberThread+1);}
            if(numberThread == 1) {sleeping(numberThread+2);}
            if(numberThread == 2) {sleeping(numberThread+3);}
            if(numberThread == 3) {sleeping(numberThread+4);}
            
            
            SendingToFile(string, numberThread,count);
            count++;
            
            if(numberThread == 0) {sleeping(numberThread+4);}
            if(numberThread == 1) {
                sleeping(numberThread+5);
                string = ScannerFile(string);
                System.out.println("Отправляем " + string + " " + (numberThread + 1) + "-му клиенту!");
                out.writeUTF(string);
                out.flush();
                string = in.readUTF();
                System.out.println("\nЯ получил покет!\n");
                System.out.println("Строка:" + string);
                SendingToFile(string, numberThread,count);
            }
            if(numberThread == 2) {sleeping(numberThread+6);}
            if(numberThread == 3) {
                sleeping(numberThread+7);
                string = ScannerFile(string);
                System.out.println("Отправляем " + string + " " + (numberThread + 1) + "-му клиенту!\n");
                out.writeUTF(string);
                out.flush();
                string = in.readUTF();
                System.out.println("\nЯ получил покет!\n");
                System.out.println("Строка:" + string);
                SendingToFile(string, numberThread, count);
                string = ScannerFile(string);
                System.out.println("Отправляем " + string + " " + (numberThread + 1) + "-му клиенту!\n");
                out.writeUTF(string);
                out.flush();
                Answer = in.readUTF();
                System.out.println("Ответ: " + Answer);
                out.writeUTF(Answer);
                out.flush();
            }
 
            //----------------------Закрываемся---------------------------------
            in.close();
            out.close();
            sin.close();
            sout.close();
            
        } catch (IOException e) {
            System.out.println("Ошибка run: " + e);
        }
    }
}
 
//==============================================================================
//==============================================================================
//==============================================================================
public class Server {
 
    public String line = "5 2 1 0 5 5 3 1";
    public String[] str = line.split("[ ]");
    public ServerSocket serverSocket;
    public Socket[] clientSockets;   
    File f1 = new File("D:\\text.txt");
    
    public Server()  {
        clientSockets = new Socket[4];
        
    }
 
    public void connection() throws IOException {
        serverSocket = new ServerSocket(12345);
        System.out.println("Сервер готов к работе!");
        System.out.println("\n---------------------------------------");
    }
    
 
    public void runApp() throws IOException {
        
        
        String string = null;
        DataOutputStream dout = new DataOutputStream(new FileOutputStream(f1));
        DataInputStream din = new DataInputStream(new FileInputStream(f1));
        
        Scanner scan = new Scanner(f1);
        StringBuffer data = new StringBuffer();    
        
        for (int i = 0; i < clientSockets.length; i++) {
 
            clientSockets[i] = serverSocket.accept();
 
            System.out.println("Клиент " + (i + 1) + " подключился!");
            System.out.println(clientSockets[i]);
            if(i == 3) {System.out.println("\n");}
        }
 
        for (int i = 0; i < clientSockets.length; i++) {
            
            String sendLine = str[2 * i] + " " + str[2 * i + 1];
            
            InputStream sin = clientSockets[i].getInputStream();
            OutputStream sout = clientSockets[i].getOutputStream();
            
            DataInputStream in = new DataInputStream(sin);
            DataOutputStream out = new DataOutputStream(sout);
       
            Thread t = new Thread(new ServerThread(
                    clientSockets[i],
                    i,
                    sendLine,
                    string,
                    f1,
                    sin,
                    sout,
                    in,
                    out,
                    dout,
                    din,
                    data,
                    scan)
                    );
 
            t.start();
        }
    }
    
//==============================================================================
    public static void main(String[] args) throws IOException {
        Server server = new Server();
        server.connection();
        server.runApp();
    }
}
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.Arrays;
 
public class Client2 extends Thread {
    
 
    public static void main(String[] args) throws Exception {
        try {           
            //------------------------------------------------------------------
            Socket socket = new Socket("localhost", 12345);
 
            InputStream sin = socket.getInputStream(); 
            OutputStream sout = socket.getOutputStream();
 
            DataInputStream in = new DataInputStream(sin);
            DataOutputStream out = new DataOutputStream(sout);
            
            String line, Answer, c = null;
            int num;
            //------------------------------------------------------------------
            
            //Узнаем свой номер
            num = in.readInt();
            
            // ожидаем пока клиент пришлет строку текста
            line = in.readUTF();
            
            try {
                Thread.sleep(2000);
            } catch (InterruptedException ex) {
                Logger.getLogger(Client2.class.getName()).log(Level.SEVERE, null, ex);
              }
            
            
            System.out.println("Я получил покет!");
            System.out.println("Строка:" + line);
            out.writeUTF("Я получил покет!");
            
            try {
                Thread.sleep(2000);
            } catch (InterruptedException ex) {
                Logger.getLogger(Client2.class.getName()).log(Level.SEVERE, null, ex);
              }
            
            //создает массив из чисел, разделенных пробелом
            String str[] = line.split("[ ]");   
            
            //--------------------сортировка пузырьком--------------------------           
            Arrays.sort(str);
            for (int i = 0;i < str.length; i++){
                System.out.println("str:" +str[i]);
            }
            
            //------------------------------------------------------------------
            System.out.println("Отсортирвал его!");
            line = str[0] + " " + str[1];
            
            try {
                Thread.sleep(2000);
            } catch (InterruptedException ex) {
                Logger.getLogger(Client2.class.getName()).log(Level.SEVERE, null, ex);
              }
            
            //отправляем серверу ответ           
 
            out.flush();
            System.out.println("Отправил " +line + " серверу!"); 
            
            try {
                Thread.sleep(2000);
            } catch (InterruptedException ex) {
                Logger.getLogger(Client2.class.getName()).log(Level.SEVERE, null, ex);
              }
            
            //выводим то, что получилось на экран
            line = String.valueOf(str[0]+ " " + str[1]);
            out.writeUTF(line);
            out.flush();
            
            //------------------------------------------------------------------
            
            if (num == 1 || num == 3){
            line = in.readUTF();           
            line = line.trim();      
            System.out.println("Строка:" +line);
            
            String str1[] = {
                line.substring(0, 1),
                line.substring(2, 3),
                line.substring(5, 6),
                line.substring(7)
            };
            
            System.out.println("Я получил покет!");
 
          
            Arrays.sort(str1);
            for (int i = 0;i < str1.length; i++){
                System.out.println("str1:" +str1[i]);
            }
            
            System.out.println("Отсортирвал его!");
            line = String.valueOf(str1[0]+ " " + str1[1]+ " " + str1[2]+ " " + str1[3]);
            System.out.println("Отсортированная строка: " + line);
            }
            
            System.out.println("Отправляем...");
            out.writeUTF(line);
            out.flush();
            
            if (num == 1){
                Answer = in.readUTF();
                System.out.println("Ответ: " + Answer);
            }
            
            line = in.readUTF();
            System.out.println("Я получил покет!");
            
            line = line.trim();      
            System.out.println("Строка:" +line);
            
            String str2[] = {
                line.substring(0, 1),
                line.substring(2, 3),
                line.substring(4, 5),
                line.substring(6, 7),
                line.substring(9, 10),
                line.substring(11, 12),
                line.substring(13, 14),
                line.substring(15)
            };
            
            for (int i = 0;i < str2.length; i++){
                System.out.println("str1:/" +str2[i]+"/");
            }
            System.out.println("----------------------------------------------");
             Arrays.sort(str2);
            for (int i = 0;i < str2.length; i++){
                System.out.println("str1:/" +str2[i]+"/");
            }
            
            System.out.println("Отсортирвал его!");
            line = String.valueOf(str2[0]+ " " + str2[1]+ " " + str2[2]+ " " + str2[3]+ " " +str2[4]+ " " + str2[5]+ " " + str2[6]+ " " + str2[7]);
            System.out.println("Отсортированная строка: " + line);
            
            
            System.out.println("Отправляем...");
            out.writeUTF(line);
            out.flush();
            
            Answer = in.readUTF();  
            System.out.println("Ответ: " + Answer);
            //------------------------------------------------------------------            
           
            if (num == 0 || num == 2){
            Answer = in.readUTF();
            System.out.println("Ответ: " + Answer);
            }
            
        } catch(Exception e) // вывод исключений
        {System.out.println("Ошибка: "+e);}
    }  
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.06.2014, 01:23

Как организовать сервер для многих клиентов?
Подскажите пожалуйста начинающему java-программисту. Как лучше организовать сервер для небольшой он-лайн игрушки: -запускать каждый...

Сервер c использованием Java nio для множества клиентов
Все привет. Недавно познакомился с java nio, и возник такой вопрос при создании сервера для клиента, взял сервер из примера import...

Объединить несколько устройств Android через сервер в сети Internet
Один вопрос - одна тема Задача: Объединить несколько устройств Android через сервер в сети Internet, для обмена данных между ними. ...

Несколько клиентов на один сервер
Доброго времени суток! Прошу совета ну или пинка под зад в правильную сторону. Есть приложение, которое является сервером для всех...

Один сервер несколько клиентов
Всем привет) написала простую сервер-клиент программку (udp), теперь нужно сделать, что бы к серверу могло подключаться несколько клиентов....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
25
Ответ Создать тему
Новые блоги и статьи
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров В текущей версии модели успешно реализован ключевой механизм. . .
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям Реализованные компоненты: Механизм закисления почвы через протонную помпу Конкуренция между типами микориз pH как триггер сукцессии C/ P соотношение. . .
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
Решил проблему с ошибкой пагинации сообщений с сервера на алгоритме обхода дерева "Эстафета хвоста".
Hrethgir 12.07.2026
Проблема была в том, что удалялась именно новая кнопка, а не старая. Ни один ИИ не обнаружил это, а сам я смог только когда с работой стало попроще и когда заставил работать будущее автономное. . .
сукцессия 25. Хронология ошибок
anaschu 12.07.2026
# От 50-тонного гриба до устойчивого леса: хроника ошибок при построении модели вековой сукцессии микоризы ## О чём эта статья В процессе построения ОДУ-модели (система дифференциальных. . .
сукцессия 24. Промежуточное общее описание модели
anaschu 12.07.2026
Хендофф: модель АМ→ЭКМ сукцессии микоризы (ризосфера, 50 лет) Содержание проекта Симуляция вековой (50 лет) экологической сукцессии в почве леса Основные участники: АМ-гриб, ЭКМ-гриб,. . .
сукцессия 23. Более физиологичная физиология, более экологичная экология, более диффурные диффуры.
anaschu 12.07.2026
Что реально нашли и починили за эти 5 часов Правило Линдемана (КПД конверсии сахара в тело, kEff) — раньше 100% полученного углерода шло прямо в биомассу гриба; теперь только kEff=0. 5 (после. . .
сукцессия 22. От артефактов к физиологии: калибровка агентной модели грибной сукцессии для воспроизведения сезонной динамики и pH-плато
anaschu 11.07.2026
Аннотация В данной работе представлена калибровка агентной модели динамики грибных сообществ (fungal-succession), направленная на устранение нефизичных артефактов (коллапс биомассы, мгновенное. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru