0

我有 python 套接字问题
我可以启动脚本,使用 wireshark,数据被发送到我的电脑,
但是 Python 看不到数据?
正如我所看到的,套接字应该在数据包嗅探器上接收什么,有什么想法吗?
我几乎尝试了所有方法,但无论如何我似乎都无法让它工作。
我一直想永远完成这件事,但没有更多的时间去做。
但现在我愿意。

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()
4

1 回答 1

0

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

  • 您在稍后用于通信的套接字上使用 bind()。这通常仅用于您用于 accept() 调用的套接字。
  • 检查您的对等方是否需要 CRLF 行结尾。如果它正在等待 CRLF 对,它甚至不会将您发送的多行识别为单个完整行。

顺便说一句,可读性黑客:

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

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

于 2013-01-23T06:49:39.240 回答