Programación del socket del servidor Python del cliente Java

Tengo un programa cliente en Java que envía un mensaje "Hola" al 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 del 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")

El problema es que el cliente Java puede enviar un mensaje de saludo al servidor de Python, pero en el lado de Python, la instrucción else siempre se ejecuta con la salida "Go away".python version 2.7

Salida:

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

Respuestas a la pregunta(5)

Su respuesta a la pregunta