【发布时间】:2021-03-19 02:14:05
【问题描述】:
我正在尝试使用套接字在客户端建立 TCP 连接。第一部分似乎工作正常:
import socket
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
HOST = '127.0.0.1' # The server's hostname or IP address
PORT = 1234 # The port used by the server
s.connect((HOST, PORT))
现在对于send(),服务器端需要:
一旦连接了客户端,它需要发送以下字符串以发送标记:<TRIGGER>XXXX</TRIGGER>在我们的例子中,XXX 被定义为var.trigger
当我像s.send(bytes (var.trigger)) 这样编写它时,它运行时没有错误,但是,我猜是因为它没有被定义为服务器无法识别的字符串。
提前谢谢你 p.s.我不会用 Python 编写代码,所以它可能是我在这里缺少的一些非常基本的东西。
【问题讨论】:
-
尝试
s.send(bytes(f"<TRIGGER>{var.trigger}</TRIGGER>")),如果您正在运行python 2,请使用连接。还可以考虑发布一个stackoverflow.com/help/minimal-reproducible-example,其中包含var.trigger的定义。 -
等等,这怎么返回没有错误?
var.trigger已经是bytes对象了吗?无论如何,您需要解码var.trigger(如果它是bytes)并在我的示例中对 f 字符串进行编码以使其工作。 -
@MichaelRuth 非常感谢。我会尝试让它以这种方式工作。我实际上不知道 TCP 服务器是在接收字节还是字符串,以及 var。触发器是值(例如 1、2、3)。我会破解的。谢谢