gpt4 book ai didi

java - 通过套接字接收的字符串在 python 中不进行比较

转载 作者:行者123 更新时间:2023-11-30 09:00:14 25 4
gpt4 key购买 nike

我正在尝试比较通过 Python 中的套接字从 Java 发送的字符串。它无法比较。如果我在 IDLE 中运行一个简单的 If 语句,它就可以工作。但是当我尝试接收一个字符串并进行比较时。

发送字符串的Java代码:

String nummer = "1";
PrintWriter out = new PrintWriter(new BufferedWriter(
new OutputStreamWriter(socket.getOutputStream())), true);
out.println(nummer);

Python代码:

while True:
# establish a connection
clientsocket,addr = serversocket.accept()

print("Got a connection from %s" % str(addr))
returnmsg = clientsocket.recv(1024)
command = str(returnmsg.decode('utf-8'))
print(command)
if command == 1:
time.sleep(1)
print('open')
time.sleep(1)
if command == '0':
time.sleep(1)
print('close')
time.sleep(1)
if command != '1' and command != '0':
print('something else')
clientsocket.close()
print('Socket closed')

python控制台显示的输出如下:

Got a connection from ('192.168.0.101', 50148)
1

something else
Socket closed

它总是在最后一条语句中结束。我试过这样比较:

if command == '1':
if command == "1":

它应该做什么,在 java (android) 中我有 3 个按钮。 2 个按钮只发送 1 或 0(在字符串中)。另一个发送一个包含更多字符的字符串。字符串本身并不重要。

它总是在最后一条语句中结束。它不应该这样做。它甚至没有输入正确的语句。因为当我点击我的 Android 应用程序中的按钮时它应该打印“打开”。

谁知道如何解决这个问题,让它输入正确的语句而不输入最后一个?

干杯。

最佳答案

你可能在电线上有一个换行符,所以你应该与 "1\n".strip() 进行比较

关于java - 通过套接字接收的字符串在 python 中不进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26867134/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com