![](/img/trans.png)
[英]Java client/server - sending multiple strings over a Socket connection
[英]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.