2016-04-05 21 views
0

私はラズベリーパイとラップトップの間のソケットを使用してクライアント/サーバー経由で通信しようとしています。私は基本的な文字列を送ることができました。単純なpythonスクリプトを使用して、それがどのように働いたのかについての基本的な考え方を得ることができました。今ではもう少し進歩し、OpenCVをUSBカメラと一緒に使って、カメラのフレーム内の動きを検出する小さなセキュリティシステムを作り始めました。私は、セキュリティシステムとサーバーに接続するPythonのスクリプトを持って、それはリアルタイムで私のラップトップ上のコンソールで "占有"または "占領されていない"を印刷することになっています(最終的にその動きを警告ポップアップメニューを開くことになっている検出されました)、Piを使って接続を閉じると、「Occupied」または「Unoccupied」の長い文字列しか表示されません。なぜリアルタイムで印刷されないのですか?私のノートパソコンのJavaコードはここにあります。私のPiは現時点では学校にいますが、Pythonコードにアクセスすることはできませんが、私は明日にそれを投稿します。ソケットを介して文字列を送信

public class PyComms { 


    public static void main(String[] args) { 


     try{ 
      ServerSocket server = new ServerSocket(4444); 
      System.out.println("Waiting for client on port 4444"); 
      while(true){ 
       Socket connected = server.accept(); 
       System.out.println("CONNECTED WITH CLIENT"); 
       BufferedReader inFromPi = new BufferedReader(new InputStreamReader(connected.getInputStream())); 
       while(true){ 
        String fromclient = inFromPi.readLine(); 

        if(fromclient.equalsIgnoreCase("Occupied")){ 
         System.out.println("Client responded with "+fromclient + "\n"); 
        } 
        else{ 
         System.out.println("Client responded with "+fromclient + "\n"); 
         connected.close(); 
        } 
       } 

      } 

     } 
     catch(Exception e){ 
      System.out.println(e); 

     } 


    } 

} 
+0

「while(true)」の使い方を脇に置いて...あなたはどんな出力を得ていますか?これらのメッセージはすべて印刷されていますか? – childofsoong

+0

@childofsoongこれは、「OccupiedOccupiedOccupiedOccupiedOccupied ...で応答したクライアント」または「UnoccupiedUnoccupiedUnoccupiedUnoccupiedUnoccupiedで応答したクライアント」の長い文字列を出力します。 –

+0

重要な部分は、おそらくPythonコードであり、メッセージを送ります。 – jtahlborn

答えて

0

答えはまさに@jtahlbornの言ったことでした。私がしなければならなかったのは、各メッセージがPythonコードで送られた後に新しい行を追加することでした。 client_socket.send(text+'\n')

関連する問題