Java客户端python服务器套接字编程

我在java中有一个客户端程序,它向python服务器发送消息“Hello”。

Java代码

import java.io.*; import java.net.*; public class MyClient { public static void main(String[] args) { try{ Socket soc=new Socket("localhost",2004); DataOutputStream dout=new DataOutputStream(soc.getOutputStream()); dout.writeUTF("Hello"); dout.flush(); dout.close(); soc.close(); }catch(Exception e){ e.printStackTrace();} } 

Python服务器代码

  import socket # Import socket module soc = socket.socket() # Create a socket object host = "localhost" # Get local machine name port = 2004 # Reserve a port for your service. soc.bind((host, port)) # Bind to the port soc.listen(5) # Now wait for client connection. while True: conn, addr = soc.accept() # Establish connection with client. print ("Got connection from",addr) msg = conn.recv(1024) print (msg) if ( msg == "Hello Server" ): print("Hii everyone") else: print("Go away") 

问题是java客户端能够向python服务器发送Hello消息,但是在python方面,else语句总是在输出“Go away”的情况下执行。 python version 2.7

输出:

 ('Got connection from', ('127.0.0.1', 25214)) Hello Go away 

你从客户那里得到’你好’。

 if ( msg == "Hello" ): print("Hii everyone") else: print("Go away") 

在您编写的Java代码中

 dout.writeUTF("Hello"); 

但是Python服务器期望“Hello Server”打印“Hii Everyone”。

将Java客户端代码更改为

 dout.writeUTF("Hello Server"); 

只需使用正确的语法。 由于您发送“Hello”,“Go away”将是您的输出。

 if ( msg == "Hello Server" ): print("Hii everyone") else: print("Go away")