簡體   English   中英

通過套接字發送字符串

[英]Sending strings over socket

因此,我嘗試使用樹莓派和筆記本電腦之間的套接字通過客戶端/服務器進行通信。 我已經能夠在pi上使用簡單的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);

        }


    }

 }

答案就是@jtahlborn所說的。 我要做的就是在python代碼中發送完每條消息后,在一行中添加一行。 我通過執行類似於client_socket.send(text+'\\n')來實現此目的

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM