Почему использование памяти и количество потоков увеличиваются на неопределенный срок при использовании простого TCP-серAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Почему использование памяти и количество потоков увеличиваются на неопределенный срок при использовании простого TCP-сер

Сообщение Anonymous »

Я использую пакет response-native-tcp-socket для создания простого TCP-сервера в моем приложении React Native. Однако даже при использовании простейшего серверного кода использование памяти продолжает неограниченно увеличиваться с течением времени.
Сервер просто прослушивает входящие соединения, отправляет эхо-сообщение и немедленно закрывает сокет. Несмотря на то, что данные не обрабатываются, использование памяти продолжает расти, пока ОС Android не завершит процесс и приложение не закроется без сбоев и журналов.
Вот минимальный код, который я использую:< /p>

Код: Выделить всё

import React, { useEffect } from 'react';
import { View, Text } from 'react-native';
import TcpSocket from 'react-native-tcp-socket';

const TcpServer = () => {
useEffect(() => {
const server = TcpSocket.createServer(function (socket) {
console.log('Client connected:', socket.address());

socket.on('data', () => {
console.log('Received data, but ignoring it.');
socket.write('Echo server: I got your data');
socket.end(); // Close connection immediately
});

socket.on('error', (error) => {
console.log('An error occurred with client socket:', error);
socket.destroy();
});

socket.on('close', () => {
console.log('Closed connection with', socket.address());
});
});

server.listen({ port: 3000, host: '0.0.0.0', reuseAddress: true }, () => {
console.log('Server is listening on port 3000');
});

return () => {
server.close(() => {
console.log('Server has been closed');
});
};
}, []);

return (

TCP Server is running...

);
};

export default TcpServer;

Что я пробовал:
  • Управление памятью: я вызываю сокет .end() для закрытия соединений сразу после ответа.
  • Обработка сокетов: я добавил правильную обработку ошибок и логику закрытия соединения, но использование памяти продолжает расти.
  • Среда устройства: я тестировал это происходит как на эмуляторе, так и на физических устройствах, но проблема сохраняется.
Ожидаемое поведение:
  • Использование памяти должно оставаться стабильным, даже если сервер принимает и закрывает соединения.
Фактическое поведение:
  • Увеличивается использование памяти на неопределенный срок, даже если сервер ничего не делает с полученными данными и сразу закрывает соединение.
Кто-нибудь сталкивался с этой проблемой или нашел решение для предотвращения памяти утечки с помощью response-native-tcp-socket?


Подробнее здесь: https://stackoverflow.com/questions/792 ... mple-tcp-s
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»