0
0 комментариев

Уважаемые коллеги подскажите как отправить пакет на сервер?
Для тестирования проекта на Linux мне иногда приходилось отправлять файл пакета на сервер.
Там с этим справлялась простая программка netcat выглядело это так:

BashВыделить код

1
<span class="kw2">cat</span> <span class="sy0">/</span>path<span class="sy0">/</span>to<span class="sy0">/</span>filePack <span class="sy0">|</span> nc <span class="sy0"><</span>remote_ip<span class="sy0">></span> <span class="sy0"><</span>port<span class="sy0">></span>

И в консоль падал ответ от сервера.

Сейчас хотелось бы что то подобное сделать с помощью python.
Погуглил и родил что то такое:

PythonВыделить код

1
2
3
4
5
6
7
8
9
10
pack <span class="sy0">=</span> <span class="kw2">open</span><span class="br0">(</span><span class="st0">'trsTest'</span><span class="br0">)</span>.<span class="me1">read</span><span class="br0">(</span><span class="br0">)</span>
 
sock <span class="sy0">=</span> <span class="kw3">socket</span>.<span class="kw3">socket</span><span class="br0">(</span><span class="br0">)</span>
sock.<span class="me1">connect</span><span class="br0">(</span><span class="br0">(</span><span class="st0">'remote_ip'</span><span class="sy0">,</span> port<span class="br0">)</span><span class="br0">)</span>
sock.<span class="me1">send</span><span class="br0">(</span>pack.<span class="me1">encode</span><span class="br0">(</span><span class="br0">)</span><span class="br0">)</span>
 
data <span class="sy0">=</span> sock.<span class="me1">recv</span><span class="br0">(</span><span class="nu0">1024</span><span class="br0">)</span>
sock.<span class="me1">close</span><span class="br0">(</span><span class="br0">)</span>
 
<span class="kw1">print</span><span class="br0">(</span>data<span class="br0">)</span>

Как вы догадались не то

И сервер на том конце вместо этого:

PythonВыделить код

1
ATTENTION<span class="sy0">!</span> User <span class="st0">'240 383 489'</span> <span class="br0">(</span>192.456.45.221:<span class="nu0">64645</span><span class="br0">)</span> <span class="kw1">try</span> connect to unexists TRS-channel <span class="br0">{</span>6D877BEB-55A5-457B-<span class="nu0">8962</span>-F9030961E7E6<span class="br0">}</span>

Ответили вот это:

PythonВыделить код

1
ATTENTION<span class="sy0">!</span> User <span class="st0">'aР·Р'</span> <span class="br0">(</span>192.456.45.221:<span class="nu0">64645</span><span class="br0">)</span> <span class="kw1">try</span> connect to unexists TRS-channel <span class="br0">{</span>E27BBBD0-A180-D26D-<span class="nu0">9055</span>-7B45E280B062<span class="br0">}</span>

А IDE написала:

PythonВыделить код

1
2
3
4
Traceback <span class="br0">(</span>most recent call last<span class="br0">)</span>:
  File <span class="st0">"M:/assistant/pyTestAs/test"</span><span class="sy0">,</span> line <span class="nu0">99</span><span class="sy0">,</span> <span class="kw1">in</span> <span class="sy0"><</span>module<span class="sy0">></span>
    data <span class="sy0">=</span> sock.<span class="me1">recv</span><span class="br0">(</span><span class="nu0">1024</span><span class="br0">)</span>
ConnectionResetError: <span class="br0">[</span>WinError <span class="nu0">10054</span><span class="br0">]</span> Удаленный хост принудительно разорвал существующее подключение
Решенный вопрос
Добавить комментарий