0
我正在使用python創建一個服務器,並用Java(Android)創建一個客戶端。我面臨的問題是從一個到另一個正確地獲取數據。Python服務器和Java客戶端:奇怪的行爲接收數據
我讓Java客戶端嘗試這樣一個登錄:
SettingsManager settingsman = SettingsManager.getInstance(params[0]);
int port = Integer.parseInt(settingsman.getPort());
String ip = settingsman.getIp();
server = new Socket(ip, port);
input = new DataInputStream(server.getInputStream());
output = new DataOutputStream(server.getOutputStream());
output.writeChars(LOGIN_REQ);
output.writeChars(settingsman.getUserName());
output.writeChars(settingsman.getPassword());
String token = Integer.toString(input.read());
//Check if the login has failed
if(token == "0"){
token = null;
}
return token;
而Python的服務器收到這樣的:
opcode = c.recv(2)
opcode = opcode.decode('utf-8')
print("OPCODE:" + opcode + str(type(opcode)))
if(opcode == "0"):
"Login action"
print("STARTING TO RECV!")
login = c.recv(1024).decode('utf-8')
print("RECEIVED LOGIN: " + login)
password = c.recv(1024).decode('utf-8')
print("PASSWORD: " + password)
print("USERNAME: " + username)
setman = SettingsManager()
setuser = setman.seccam_user()
setpass = setman.seccam_password()
if login == setuser & password == setpass:
print("Login is good!")
"""Generate random token and save it to the settings file"""
elif(opcode == "1"):
pass
else:
print("OTHER!")
這是輸出:
OPCODE:0<class 'str'>
OTHER!
儘管Opcode似乎是一個字符串並且是正確的值,但程序不會正確輸入If語句
誰能告訴我我做錯了什麼?
謝謝