套接字未与服务器建立连接

时间:2018-09-20 08:02:14

标签: python sockets networking

请帮助我输入这段代码。错误在下面给出。

  

错误:套接字成功创建的111连接失败回溯最近调用的最后一个文件custom-iec.py在模块s.sendstartdt中的第27行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 :(得分:0)

请勿使用您自己的套接字变量覆盖库函数套接字。这样做可能会遇到问题。

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

答案 1 :(得分:0)

  

typeerror send参数1必须是字符串缓冲区列表

错误消息的正确措词是:

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

这样说-用Packet = […定义了一个 list ,而send()则需要一个 string buffer 。您可以使用Packet = "\x68\x04\x43\x00\x00\x00"将数据包定义为字符串。