@albertalexandrov

Подтверждение получения пакета TCP-сервером в докере?

Всем привет!

Есть простейший TCP-сервер на Python, запущенный в Docker (пример из документации библиотеки socketserver).

import socketserver

class MyTCPHandler(socketserver.BaseRequestHandler):

    def handle(self):
        self.data = self.request.recv(1024)
        print("{} wrote:".format(self.client_address[0]))
        self.request.sendall(подтвеждение)

if __name__ == "__main__":
    HOST, PORT = "localhost", 9999

    with socketserver.TCPServer((HOST, PORT), MyTCPHandler) as server:
        server.serve_forever()


Docker-контейнеры у нас в rancher. Открыт порт наружу. В настройках внешнего устройства указаны открытые хост и порт.

Внешнее устройство отправляет нам данные. Например:

b"\x01.\x80\x01\x82\x02\x15\x03867459044383263\x042\x00\x10\x00\x00 \xae|\xa5]0 \x8f\xdaR\x03\xdf\xc5=\x023\x00\x00\x00\x00A'"


От TCP-сервера ожидается подтвеждение получения данных путем отправки обратно первого и последних двух байт. При этом в self.client_address[0] я вижу 10.42.0.0. То есть некий внутренний ip.

Я хочу спросить, в таком случае дойдет ли подтверждающий пакет до отправителя (внешнего устройства)?
  • Вопрос задан
  • 55 просмотров
Пригласить эксперта
Ответы на вопрос 1
alternativshik
@alternativshik
что мешает взять и проверить?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы