2017-03-08 11 views
0

ここでは、基本的なJavaサーバーを使用してクライアントから受け取るものをクライアントに返します。クライアントはPythonで書かれています。私は、サーバーが接続を確認するメッセージをクライアントに送信するので、最初の接続を行うことができます。しかし、私はクライアントが何かを送信するサーバーを送信する場合は何もしません。私は、クライアントが送信していない、またはサーバが受信していないという問題があるかどうかはわかりません。ここでJavaサーバーとPythonクライアントの接続

は、サーバーのコードです:

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

、ここでは、クライアントの:

Pythonクライアントで
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

Java APIに 'RESTful'を使用し、Pythonクライアントに' requests'を使用するのは簡単な方法ではありませんか? –

+0

私は分かりません。しかし、私がこのコードで間違っていたことをあなたが説明することは可能でしょうか? – kessi

+0

私は '\ n'が何とか破壊されたと思う。しかし、私はPythonに慣れていません。 – Fildor

答えて

0

: あなたのプロンプトが\nが含まれていますが、入力からの結果ではないでしょうか?送信する前に\ntestに追加してみてください。

関連する問題