Programação de soquete do servidor python do cliente Java

Eu tenho um programa cliente em java que envia uma mensagem "Olá" para o servidor python.

Código 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();}  
    }  

Código do servidor 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")

o problema é que o cliente java é capaz de enviar uma mensagem Hello para o servidor python, mas, no lado python, a instrução else sempre é executada com a saída "Go away".python version 2.7

Resultado:

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

questionAnswers(5)

yourAnswerToTheQuestion