Я использую python socket.py для создания соединения с ftp-сервером. Теперь я хочу сбросить соединение (отправить флаг RST) и прослушать ответ ftp-сервера. (К вашему сведению, использование socket.send('','R') не работает, поскольку ОС отправляет флаг FIN вместо RST.)
Отправка сброса в соединении TCP/IP Socket
22.06.2011
- Почему вы хотите сбросить соединение? 22.06.2011
- репликация вредоносного ftpclient 22.06.2011
- Связано: сброс соединения TCP со стороны сервера 10.01.2019
Ответы:
1
Включите параметр сокета SO_LINGER и установите время задержки на 0 секунд. Это приведет к тому, что TCP прервет соединение, когда оно будет закрыто, сбросит данные и отправит RST. См. раздел 7.5 и пример 15.21 в UNP.
В питоне:
def client(host, port):
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM, 0)
s.connect((host, port))
l_onoff = 1
l_linger = 0
s.setsockopt(socket.SOL_SOCKET, socket.SO_LINGER,
struct.pack('ii', l_onoff, l_linger))
# send data here
s.close()
22.06.2011
2
Если вы хотите реализовать собственное поведение при подключении, я думаю, вам следует попробовать использовать Scapy. Это действительно полезная библиотека/инструмент. Это позволяет вам играть с пакетами IP/TCP/UDP/ICMP.
22.06.2011
3
Чтобы отправить RST по TCP-соединению, установите для параметра SO_LINGER
значение true
с нулевым временем ожидания, затем закройте сокет. Это сбрасывает соединение. Я понятия не имею, как это сделать в Python, и действительно ли вы можете это сделать.
22.06.2011
Новые материалы
Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..
Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально
Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..
Частный метод Python: улучшение инкапсуляции и безопасности
Введение
Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..
Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования
Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..
Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv)
Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..
Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..
Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..