2016-04-05 27 views
0

Bu yüzden istemci/sunucu aracılığıyla ahududu pi ve dizüstü bilgisayar arasındaki soketleri kullanarak iletişim kurmaya çalışıyorum. Nasıl çalıştığına dair temel fikri elde etmek için pi'mdeki basit bir python betiğini kullanarak temel dizeleri gönderebiliyorum. Şimdi biraz daha gelişmiştim ve kamera çerçevesindeki hareketi algılayan küçük bir güvenlik sistemi oluşturmak için bir USB kamera ile birlikte OpenCV kullanmaya başladı. Güvenlik sistemiyle sunucuyla bağlantı kurduğum python betiğim var ve dizüstü bilgisayarımdaki konsolda "Occupied" veya "Unoccupied" i gerçek zamanlı olarak yazdıracağım (sonuçta o harekete uyarı veren bir açılır menüyü açması gerekiyordu) Algılandı) ancak Pi ile olan bağlantıyı kapattığımda sadece "İşgal Edilmiş" veya "Boş Değil" gibi uzun ve büyük bir dizgi basıyor. Neden gerçek zamanda yazdırmıyor? İşte benim laptopumdaki java kodu, peki benim Pi şu anda okulda ve python koduna erişemiyorum ama yarın yayınlayacağım.Sokete dizelerin gönderilmesi

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

'a benzer bir şey yaparak başardım.' While (true) 'in ideal kullanımından daha azını bir kenara koymak ... hangi çıktıyı elde ediyorsunuz? Bu mesajlardan birini yazdırıyor mu? – childofsoong

+0

@childofsoong, "İstemci OccupiedOccupiedOccupiedOccupiedOccupied ile yanıt verdi ..." veya "Müşteri UnoccupiedUnoccupiedUnoccupiedUnoccupiedUnoccupiedUnoccupied .. ile yanıt verdi." –

+0

büyük olasılıkla önemli olan python kodudur ve büyük olasılıkla siz soketinizi kızdırmazsınız. Bir mesaj göndermek. – jtahlborn

cevap

0

cevap @jtahlborn tam olarak söylenenlerin. Tek yapmam gereken her mesajın python koduna gönderilmesinden sonra yeni bir satır içermekti. Bunu, client_socket.send(text+'\n')

İlgili konular