0

Python ソケットに問題
があります スクリプトを開始できます.wireshark を使用します.データは PC に送信されます.
しかし 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

不審な点が 2 つあります。

  • 後で通信に使用するソケットで bind() を使用します。これは通常、accept() 呼び出しに使用するソケットでのみ使用されます。
  • ピアが CRLF 行末を必要としているかどうかを確認してください。CRLF ペアを待っている場合は、送信した複数の行を 1 つの完全な行として認識しません。

ところで、読みやすさのハック:

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

ブラケットは式を拡張し、「2 つの」「文字列」が自動的に連結されます。また、私が書いているように、先頭のスペースは正しいですか?

于 2013-01-23T06:49:39.240 に答える