2017-03-08 2 views
0

Also hier ist die Sache, ich habe einen grundlegenden Java-Server, der zurück an den Client sendet, was auch immer es von ihm erhält. Der Client ist in Python geschrieben. Ich bin in der Lage, die erste Verbindung herzustellen, da im Server der Client eine Nachricht sendet, die die Verbindung bestätigt. Aber wenn ich möchte, dass der Client den Server sendet, tut das nichts. Ich bin mir nicht sicher, ob das Problem mit dem Client nicht sendet oder der Server nicht empfängt.Verbinden eines Java-Servers mit einem Python-Client

Hier ist der Code für den Server:

int portNumber = Integer.parseInt(args[0]); 

    try ( 
     ServerSocket serverSocket = new ServerSocket(portNumber); 
     Socket clientSocket = serverSocket.accept(); 
     PrintWriter outs = 
      new PrintWriter(clientSocket.getOutputStream(), true); 
     BufferedReader in = new BufferedReader(
      new InputStreamReader(clientSocket.getInputStream())); 
    ) { 

     String inputLine, outputLine; 


     outputLine = "Hello socket, I'm server"; 
     outs.println(outputLine); 
     outs.println("I' connected"); 
     while ((inputLine = in.readLine()) != null) { 
      outputLine = inputLine; 
      outs.println(outputLine); 
      if (outputLine.equals("Bye.")) 
       break; 

     } 

    } catch (IOException e) { 
     System.out.println("Exception caught when trying to listen on port " 
      + portNumber + " or listening for a connection"); 
     System.out.println(e.getMessage()); 
    } 
} } 

und hier ist der Kunde:

import socket 

HOST = "localhost" 
PORT = 8080 

sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
sock.connect((HOST, PORT)) 
print (socket.getaddrinfo(HOST,PORT)) 
buffer_size = 100 

while True : 
    data = sock.recv(buffer_size)  
    print ('you recieved :' , data) 
    test = input('send here\n')  
    sock.sendall(bytes(test, 'utf-8')) 
    print ('you sent : ' , test) 
+0

würde mit 'RESTful' für Java-API und' Anfragen' für Python-Client nicht der einfache Weg sein? –

+0

Ich weiß es nicht. Aber kannst du erklären, was genau ich mit diesem Code falsch gemacht habe? – kessi

+0

Ich vermute, das '\ n' ist irgendwie zerstört. Aber ich kenne Python nicht. – Fildor

Antwort

0

Im Python-Client: Ihre prompte ein \n enthält, sondern das Ergebnis von der Eingabe nicht? Versuchen Sie, vor dem Senden eine \n zu test hinzuzufügen.

Verwandte Themen