我的python套接字不会收到?

时间:2013-01-23 04:23:19

标签: python sockets

我遇到了python套接字问题 我可以启动脚本,使用wireshark,数据发送到我的电脑,
但Python没有看到数据?
正如我可以看到套接字应该在数据包嗅探器上接收的内容,Any Ideas?
我已经尝试了所有的东西,无论如何我似乎都无法工作 我一直希望永远这样做,但没有更多的时间来处理它 但现在我做了。

import sys
import socket
import os
import hashlib
import subprocess

class ConnectToServer:

    port = 12345
    host = "80.69.129.118"

    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.bind((socket.gethostname(), 12345))

    s.connect((host , port))
    message = "LOGON\n Protocol-Version: 2.0\n App-type: Windows x86\n Operator: PC_CLIENT\n name: palpythonbot@gmail.com\n capabilities: 4\n"

class SendAndReceive:

    s.send(message)
    rply = s.recv(10)
    #####WONT RECEIVE RPLY
    print rply
    passmd5 = hashlib.md5()
    passmd5.update(pal_pass)
    authmessage = "AUTH\n Encryption-Type: 1\n Online-Status: 1\n Last: 1\n" +     passmd5.hexdigest()
    s.send(authmessage)
    rply1 = s.recv(10)
    print rply1
    s.close()

1 个答案:

答案 0 :(得分:0)

我看到两件看起来很可疑的事情:

  • 您在稍后用于通信的套接字上使用bind()。这通常仅用于您用于accept()调用的套接字。
  • 检查您的同伴是否想要CRLF行结尾。如果它正在等待CRLF对,它将无法识别您发送的多行甚至是一条完整的行。
BTW,可读性黑客:

authmessage = ("AUTH\n"
               " Encryption-Type: 1\n"
               " Online-Status: 1\n")

括号扩展表达式,“两个”“字符串”自动连接。另外,就像我写的那样,前导空格是否正确?