JavaサーバーとPythonクライアントの間にTCP接続があります。 'q'がいずれかの接続から他の接続に送信される場合は、接続を閉じる必要があります。 Pythonからjavaに 'q'を送ると動作します。しかし、私がJavaからPythonに 'q'を送ったとき、それは動作しません。私は型キャストを試みましたが、使用しませんでした。TCP Javaサーバー、Pythonクライアント文字列が等しくない
のJavaサーバー:
パブリッククラスのSender {
public static void main(String[] args) throws IOException {
String fromclient;
ServerSocket Server = new ServerSocket(25000);
System.out.println("TCPServer Waiting for client on port 25000");
while (true) {
Socket connected = Server.accept();
System.out.println(
" THE CLIENT" + " " + connected.getInetAddress() + ":" + connected.getPort() + " IS CONNECTED ");
PrintWriter out = new PrintWriter(connected.getOutputStream(), true);
Scanner sc = new Scanner(System.in);
while (true) {
String input = sc.nextLine();
out.println(input);
}
}
}
}
Pythonクライアント:常に
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect(("localhost", 25000))
while True:
r, _, _ = select.select([client_socket], [], [])
if r:
data = client_socket.recv(4096)
string_data = data.decode('utf-8')
print str(string_data) == 'q'
if str(string_data) == 'q' or string_data == 'Q':
print ('Connection closed')
client_socket.close()
break
else:
print (string_data)
文の印刷STR(string_data)== 'Q'偽を返します
まだ同じ問題 –
は、エンコーディングがUTF-8 – Shiva
に同じものを使用し、次いで、標準的な符号化エイリアスを確認お願いします。 –