Найти - Пользователи
Полная версия: Принять все данные по TCP до разрыва соединения
Начало » Python для новичков » Принять все данные по TCP до разрыва соединения
1
say
Приветствую

Есть простой код из примеров в интернете, который посылает сообщеие по tcp и принимает ответ:
 import socket
HOST ="192.168.18.2"
PORT = 3509
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST, PORT))
s.send(b"status")
data = s.recv(1024)
print(data)

Единственное, при отправки ответа сервер сразу рвет соединение и данный код выдает ошибку.
Traceback (most recent call last):
File "./shsrv_tst.py", line 23, in <module>
data = s.recv(1024)
ConnectionResetError: [Errno 104] Connection reset by peer
Собственно вопрос - как получить данные? Пытался указывать количество байт s.recv(1), но не помогает.

Так же пробовал через telnetlib - таже самая ошибка.
При запросе руками через telnet ответ от сервера прилетает.
py.user.next
say
Единственное, при отправки ответа сервер сразу рвет соединение и данный код выдает ошибку.
say
При запросе руками через telnet ответ от сервера прилетает.
Надо узнать, что там передаётся на самом деле.

Поставь Wireshark и смотри, что там в пакетах передаётся, когда ты через telnet это делаешь.
say
При запуске кода:
08:48:33.559294 IP 192.168.18.254.51300 > 192.168.18.2.3509: Flags [S], seq 2168701005, win 64240, options [mss 1460,sackOK,TS val 4205111618 ecr 0,nop,wscale 7], length 0
E..<..@.@.._.........d...C.M...................
...B........
08:48:33.568614 IP 192.168.18.2.3509 > 192.168.18.254.51300: Flags [S.], seq 9572, ack 2168701006, win 2144, options [mss 536,nop,nop,sackOK], length 0
E..0......4............d..%d.C.Np..`............
08:48:33.568717 IP 192.168.18.254.51300 > 192.168.18.2.3509: Flags [.], ack 1, win 64240, length 0
E..(..@.@..r.........d...C.N..%eP....u..
08:48:33.568890 IP 192.168.18.254.51300 > 192.168.18.2.3509: Flags [P.], seq 1:7, ack 1, win 64240, length 6
E.....@.@..k.........d...C.N..%eP....{..status
08:48:33.781445 IP 192.168.18.254.51300 > 192.168.18.2.3509: Flags [P.], seq 1:7, ack 1, win 64240, length 6
E.....@.@..j.........d...C.N..%eP....{..status
08:48:33.782815 IP 192.168.18.2.3509 > 192.168.18.254.51300: Flags [.], ack 7, win 2138, length 0
E..(......4............d..%e.C.TP..Z..........
08:48:34.298644 IP 192.168.18.2.3509 > 192.168.18.254.51300: Flags [R.], seq 1, ack 7, win 24584, length 0
E..(......4............d..%e.C.TP.`..S........

Telnet:
08:47:37.253451 IP 192.168.18.254.51280 > 192.168.18.2.3509: Flags [S], seq 3608591324, win 64240, options [mss 1460,sackOK,TS val 4205055313 ecr 0,nop,wscale 7], length 0
E..<t.@.@.D7.........P.........................
...Q........
08:47:37.278783 IP 192.168.18.2.3509 > 192.168.18.254.51280: Flags [S.], seq 9452, ack 3608591325, win 2144, options [mss 536,nop,nop,sackOK], length 0
E..0......4............P..$.....p..`p...........
08:47:37.278937 IP 192.168.18.254.51280 > 192.168.18.2.3509: Flags [.], ack 1, win 64240, length 0
E..(t.@.@.DJ.........P........$.P....u..
08:47:40.082763 IP 192.168.18.254.51280 > 192.168.18.2.3509: Flags [P.], seq 1:9, ack 1, win 64240, length 8
E..0t.@.@.DA.........P........$.P....}..status

08:47:40.085964 IP 192.168.18.2.3509 > 192.168.18.254.51280: Flags [P.], seq 1:6, ack 9, win 2136, length 5
E..-......4............P..$.....P..X....1 OFF.
08:47:40.086085 IP 192.168.18.254.51280 > 192.168.18.2.3509: Flags [.], ack 6, win 64235, length 0
E..(t.@.@.DH.........P........$.P....u..
08:47:40.088659 IP 192.168.18.2.3509 > 192.168.18.254.51280: Flags [R.], seq 6, ack 9, win 24584, length 0
E..(......4............P..$.....P.`.Av........
say
Разобрался.
сюда:
s.send(b"status")

добавил перенос сторки:
s.send(b"status\r\n")
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB