Сокет не установил соединение с сервером - PullRequest
0 голосов
/ 20 сентября 2018

Пожалуйста, помогите мне в этом коде.Ошибка приведена ниже.

Ошибка: сокет успешно создан. 111 Ошибка подключения. Обратный вызов. Последний вызов. Последний файл custom-iec.py Строка 27 в модуле s.sendstartdt typeerror Аргумент отправки 1 должен быть списком строковых буферов

import socket 
socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
a = socket.connect_ex(('XXX.XXX.XXX.XXX', 2500))
#s = socket.socket()
port=2500
a=socket.connect_ex(('XXX.XXX.XXX.XXX', port))
print a
Packet = [

    0x68,
    0x04, 
    0x43,
    0x00, 
    0x00, 
    0x00 
    ]
socket.send(Packet)
print s.recv(256)
s.close

Ответы [ 2 ]

0 голосов
/ 20 сентября 2018

аргумент отправки typeerror 1 должен быть списком строковых буферов

Правильная формулировка сообщения об ошибке:

TypeError: send() argument 1 must be string or buffer, not list

И это говорит о том, что Packet = [… вы определили список , в то время как send() ожидает строку или буфер .Вы можете определить свой пакет как строку с Packet = "\x68\x04\x43\x00\x00\x00".

0 голосов
/ 20 сентября 2018

Не перезаписывайте сокет библиотечной функции вашей собственной переменной сокета.При этом вы можете столкнуться с проблемами.

socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
^^ - better is: s = socket...

Но я бы порекомендовал вам посмотреть @ этот комментарий:

import socket

clientsocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)  
clientsocket.connect(('YOURIP', YOURPORT))   
clientsocket.send('hello')

из https://stackoverflow.com/a/18297623/8619512

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...