1

質問です。\n をパケットで送信する必要がありますが、Python はそれを EOL として扱います。\n を生のテキストとパケットの一部として正確に扱うようにするにはどうすればよいですか?

logcom = "LOGON\n Protocol-Version: 2.0\n App-type: Windows x86\n Operator: PC_CLIENT\n name: " + pal_user + "\n capabilities: 4\n"

すべてを 1 つのパケットで送信する必要がありますが、\n パケットに複数の行がある場合は EOL として扱われますが、LOGON だけの場合はそうではありません\n

socket.sendall("'LOGON\n ^ SyntaxError: EOL while scanning string literal

エラー^

4

2 に答える 2

2

ほとんどの場合、行に最後の引用符がありません。次のように使用してください。

logcom = "LOGON\n Protocol-Version: 2.0\n App-type: Windows x86\n Operator: PC_CLIENT\n name: " + pal_user + "\n capabilities: 4\n"
socket.sendall(logcom)

質問にあるように、ソースコードで複数の行に分割したい場合は、次のように三重引用符で記述する必要があります。

logcom = """LOGON
Protocol-Version: 2.0
App-type: Windows x86
Operator: PC_CLIENT
name: {}
capabilities: 4
""".format(pal_user)
socket.sendall(logcom)
于 2012-11-02T01:05:41.710 に答える
1

「\n」で「\」を送信する必要がある場合は、文字をエスケープするだけです。したがって、以下を送信する必要があります。

logcom = "LOGON\\n Protocol-Version: 2.0\\n App-type: Windows x86\\n Operator: PC_CLIENT\\n name: " + pal_user + "\\n capabilities: 4\\n"

改行を含めてデータを送信する必要がある場合socket.sendは、ループで使用してみます。

于 2012-11-02T00:50:27.490 に答える